コード例 #1
0
/*!
  \~english
  Sends the file \a filePath as HTTP response.

  \~japanese
  HTTPレスポンスとして、ファイル \a filePath の内容を送信する
*/
bool TActionController::sendFile(const QString &filePath, const QByteArray &contentType, const QString &name, bool autoRemove)
{
    if (rendered) {
        tWarn("Has rendered already: %s", qPrintable(className() + '#' + activeAction()));
        return false;
    }
    rendered = true;

    setStatusCode(200);
    if (!name.isEmpty()) {
        QByteArray filename;
        filename += "attachment; filename=\"";
        filename += name.toUtf8();
        filename += '"';
        response.header().setRawHeader("Content-Disposition", filename);
    }

    response.setBodyFile(filePath);
    response.header().setContentType(contentType);

    if (autoRemove)
        setAutoRemove(filePath);

    return true;
}
コード例 #2
0
ファイル: savefile.cpp プロジェクト: alexey-zayats/athletic
bool SaveFile::open(OpenMode flags)
{
    QFile ofi(m_finalFileName);
    // Check whether the existing file is writable
    if (ofi.exists() && !ofi.open(QIODevice::ReadWrite)) {
        setErrorString(ofi.errorString());
        return false;
    }

    setAutoRemove(false);
    setFileTemplate(m_finalFileName);
    if (!QTemporaryFile::open(flags))
        return false;

    m_finalized = false; // needs clean up in the end
    if (ofi.exists()) {
        setPermissions(ofi.permissions()); // Ignore errors
    } else {
        Permissions permAll = QFile::ReadOwner
                | QFile::ReadGroup
                | QFile::ReadOther
                | QFile::WriteOwner
                | QFile::WriteGroup
                | QFile::WriteOther;

        // set permissions with respect to the current umask
        setPermissions(permAll & ~m_umask);
    }

    return true;
}
コード例 #3
0
ファイル: tempdir.cpp プロジェクト: flying-sheep/ktikz
TempDir::TempDir(const QString &directoryPrefix, int mode)
	: KTempDir(directoryPrefix, mode)
{
	setAutoRemove(true);
}