Fix torrent loading problem from Web UI on Windows.

This commit is contained in:
Christophe Dumez
2011-10-04 22:18:59 +03:00
parent 9cff66df3f
commit 76ca967d70
3 changed files with 12 additions and 10 deletions

View File

@@ -430,16 +430,18 @@ void HttpConnection::respondCommand(const QString& command) {
if(command == "upload") {
qDebug() << Q_FUNC_INFO << "upload";
// Get a unique filename
// XXX: We need to use a QTemporaryFile pointer here
// and it fails on Windows.
// The file also needs to end with .torrent otherwise
// it fails to load on Windows.
QTemporaryFile *tmpfile = new QTemporaryFile (QDir::temp().absoluteFilePath("qBT-XXXXXX.torrent"));
tmpfile->setAutoRemove(false);
if (tmpfile->open()) {
QString filePath = tmpfile->fileName();
tmpfile->write(m_parser.torrent());
tmpfile->close();
emit torrentReadyToBeDownloaded(tmpfile->fileName(), false, QString(), false);
tmpfile->deleteLater();
// XXX: tmpfile needs to be deleted on Windows before using the file
// or it will complain that the file is used by another process.
delete tmpfile;
emit torrentReadyToBeDownloaded(filePath, false, QString(), false);
// Clean up
QFile::remove(filePath);
} else {
std::cerr << "I/O Error: Could not create temporary file" << std::endl;
delete tmpfile;