QNetworkReply* Parse::uploadFileData(QByteArray data, QString name) { if (!isReady() || data.isEmpty()) return NULL; if (name.isEmpty()) { // compute name from content } setEndPoint( "files/"+name); QMimeDatabase db; QMimeType mime = db.mimeTypeForData(data); initHeaders(); setHeader(QNetworkRequest::ContentTypeHeader, mime.name().toUtf8()); m_conn = connect(this, &BaaS::replyFinished, [=]( QJsonDocument json){ disconnect(m_conn); if ( getHttpCode() == 201 ){ currentObject = json.object(); // Create fileLit object QString mainObj = "{\"url\": \""+currentObject.value("url").toString()+ "\",\"file\": {\"name\": \""+currentObject.value("name").toString()+ ",\"__type\": \"File\"}}"; setEndPoint("classes/FilesList"); create( mainObj); emit fileUploaded( currentObject); } } ); return request( BaaS::POST, data ); }
void NodeHelper::magicSetType(KMime::Content *node, bool aAutoDecode) { const QByteArray body = (aAutoDecode) ? node->decodedContent() : node->body(); QMimeDatabase db; QMimeType mime = db.mimeTypeForData(body); QString mimetype = mime.name(); node->contentType()->setMimeType(mimetype.toLatin1()); }
void ImageEffect::save(KoXmlWriter &writer) { writer.startElement(ImageEffectId); saveCommonAttributes(writer); QByteArray ba; QBuffer buffer(&ba); buffer.open(QIODevice::WriteOnly); if (m_image.save(&buffer, "PNG")) { QMimeDatabase db; const QString mimeType(db.mimeTypeForData(ba).name()); writer.addAttribute("xlink:href", "data:" + mimeType + ";base64," + ba.toBase64()); } writer.endElement(); }
// Only called when a filename was given bool KTar::createDevice(QIODevice::OpenMode mode) { if (d->mimetype.isEmpty()) { // Find out mimetype manually QMimeDatabase db; QMimeType mime; if (mode != QIODevice::WriteOnly && QFile::exists(fileName())) { // Give priority to file contents: if someone renames a .tar.bz2 to .tar.gz, // we can still do the right thing here. QFile f(fileName()); if (f.open(QIODevice::ReadOnly)) { mime = db.mimeTypeForData(&f); } if (!mime.isValid()) { // Unable to determine mimetype from contents, get it from file name mime = db.mimeTypeForFile(fileName(), QMimeDatabase::MatchExtension); } } else { mime = db.mimeTypeForFile(fileName(), QMimeDatabase::MatchExtension); } //qDebug() << mode << mime->name(); if (mime.inherits(QString::fromLatin1("application/x-compressed-tar")) || mime.inherits(QString::fromLatin1(application_gzip))) { // gzipped tar file (with possibly invalid file name), ask for gzip filter d->mimetype = QString::fromLatin1(application_gzip); } else if (mime.inherits(QString::fromLatin1("application/x-bzip-compressed-tar")) || mime.inherits(QString::fromLatin1(application_bzip))) { // bzipped2 tar file (with possibly invalid file name), ask for bz2 filter d->mimetype = QString::fromLatin1(application_bzip); } else if (mime.inherits(QString::fromLatin1("application/x-lzma-compressed-tar")) || mime.inherits(QString::fromLatin1(application_lzma))) { // lzma compressed tar file (with possibly invalid file name), ask for xz filter d->mimetype = QString::fromLatin1(application_lzma); } else if (mime.inherits(QString::fromLatin1("application/x-xz-compressed-tar")) || mime.inherits(QString::fromLatin1(application_xz))) { // xz compressed tar file (with possibly invalid name), ask for xz filter d->mimetype = QString::fromLatin1(application_xz); } } if (d->mimetype == QLatin1String("application/x-tar")) { return KArchive::createDevice(mode); } else if (mode == QIODevice::WriteOnly) { if (!KArchive::createDevice(mode)) return false; if (!d->mimetype.isEmpty()) { // Create a compression filter on top of the QSaveFile device that KArchive created. //qDebug() << "creating KFilterDev for" << d->mimetype; KCompressionDevice::CompressionType type = KFilterDev::compressionTypeForMimeType(d->mimetype); KCompressionDevice* compressionDevice = new KCompressionDevice(device(), true, type); setDevice(compressionDevice); } return true; } else { // The compression filters are very slow with random access. // So instead of applying the filter to the device, // the file is completely extracted instead, // and we work on the extracted tar file. // This improves the extraction speed by the tar ioslave dramatically, // if the archive file contains many files. // This is because the tar ioslave extracts one file after the other and normally // has to walk through the decompression filter each time. // Which is in fact nearly as slow as a complete decompression for each file. Q_ASSERT(!d->tmpFile); d->tmpFile = new QTemporaryFile(); d->tmpFile->setFileTemplate(QLatin1String("ktar-XXXXXX.tar")); d->tmpFile->open(); //qDebug() << "creating tempfile:" << d->tmpFile->fileName(); setDevice(d->tmpFile); return true; } }
/*! * \internal */ QGeometry *MeshLoaderFunctor::operator()() { if (m_sourcePath.isEmpty()) { qCWarning(Render::Jobs) << Q_FUNC_INFO << "Mesh is empty, nothing to load"; return nullptr; } QStringList ext; if (!Qt3DCore::QDownloadHelperService::isLocal(m_sourcePath)) { if (m_sourceData.isEmpty()) { if (m_mesh) { // Output a warning in the case a user is calling the functor directly // in the frontend if (m_nodeManagers == nullptr || m_downloaderService == nullptr) { qWarning() << "Mesh source points to a remote URL. Remotes meshes can only be loaded if the geometry is processed by the Qt3DRender backend"; return nullptr; } Qt3DCore::QDownloadRequestPtr request(new MeshDownloadRequest(m_mesh, m_sourcePath, m_nodeManagers)); m_downloaderService->submitRequest(request); } return nullptr; } QMimeDatabase db; QMimeType mtype = db.mimeTypeForData(m_sourceData); if (mtype.isValid()) { ext = mtype.suffixes(); } QFileInfo finfo(m_sourcePath.path()); ext << finfo.suffix(); ext.removeAll(QLatin1String("")); if (!ext.contains(QLatin1String("obj"))) ext << QLatin1String("obj"); } else { QString filePath = Qt3DRender::QUrlHelper::urlToLocalFileOrQrc(m_sourcePath); QFileInfo finfo(filePath); if (finfo.suffix().isEmpty()) ext << QLatin1String("obj"); else ext << finfo.suffix(); } QScopedPointer<QGeometryLoaderInterface> loader; for (const QString &e: qAsConst(ext)) { loader.reset(qLoadPlugin<QGeometryLoaderInterface, QGeometryLoaderFactory>(geometryLoader(), e)); if (loader) break; } if (!loader) { qCWarning(Render::Jobs, "unsupported format encountered (%s)", qPrintable(ext.join(QLatin1String(", ")))); return nullptr; } if (m_sourceData.isEmpty()) { QString filePath = Qt3DRender::QUrlHelper::urlToLocalFileOrQrc(m_sourcePath); QFile file(filePath); if (!file.open(QIODevice::ReadOnly)) { qCDebug(Render::Jobs) << "Could not open file" << filePath << "for reading"; return nullptr; } if (loader->load(&file, m_meshName)) return loader->geometry(); qCWarning(Render::Jobs) << Q_FUNC_INFO << "Mesh loading failure for:" << filePath; } else { QT_PREPEND_NAMESPACE(QBuffer) buffer(&m_sourceData); if (!buffer.open(QIODevice::ReadOnly)) { return nullptr; } if (loader->load(&buffer, m_meshName)) return loader->geometry(); qCWarning(Render::Jobs) << Q_FUNC_INFO << "Mesh loading failure for:" << m_sourcePath; } return nullptr; }