Browse Source

Fix torrent upload from Web UI (Windows)

adaptive-webui-19844
Christophe Dumez 14 years ago
parent
commit
217937217d
  1. 2
      src/qtlibtorrent/qbtsession.cpp
  2. 14
      src/webui/httpconnection.cpp

2
src/qtlibtorrent/qbtsession.cpp

@ -825,6 +825,8 @@ QTorrentHandle QBtSession::addMagnetUri(QString magnet_uri, bool resumed) {
qDebug("addMagnetURI: using save_path: %s", qPrintable(savePath)); qDebug("addMagnetURI: using save_path: %s", qPrintable(savePath));
} }
qDebug("Adding magnet URI: %s", qPrintable(magnet_uri));
// Adding torrent to Bittorrent session // Adding torrent to Bittorrent session
try { try {
h = QTorrentHandle(add_magnet_uri(*s, magnet_uri.toStdString(), p)); h = QTorrentHandle(add_magnet_uri(*s, magnet_uri.toStdString(), p));

14
src/webui/httpconnection.cpp

@ -389,23 +389,27 @@ void HttpConnection::respondCommand(QString command)
QByteArray torrentfile = parser.torrent(); QByteArray torrentfile = parser.torrent();
// Get a unique filename // Get a unique filename
QString filePath; QString filePath;
QTemporaryFile tmpfile; QTemporaryFile *tmpfile = new QTemporaryFile;
tmpfile.setAutoRemove(false); tmpfile->setAutoRemove(false);
if (tmpfile.open()) { if (tmpfile->open()) {
filePath = tmpfile.fileName(); filePath = tmpfile->fileName();
} else { } else {
std::cerr << "I/O Error: Could not create temporary file" << std::endl; std::cerr << "I/O Error: Could not create temporary file" << std::endl;
return; return;
} }
tmpfile.close(); tmpfile->close();
// Now temporary file is created but closed so that it can be used. // Now temporary file is created but closed so that it can be used.
// write torrent to temporary file // write torrent to temporary file
QFile torrent(filePath); QFile torrent(filePath);
if(torrent.open(QIODevice::WriteOnly)) { if(torrent.open(QIODevice::WriteOnly)) {
torrent.write(torrentfile); torrent.write(torrentfile);
torrent.close(); torrent.close();
} else {
std::cerr << "I/O Error: Could not create temporary file" << std::endl;
return;
} }
emit torrentReadyToBeDownloaded(filePath, false, QString(), false); emit torrentReadyToBeDownloaded(filePath, false, QString(), false);
delete tmpfile;
// Prepare response // Prepare response
generator.setStatusLine(200, "OK"); generator.setStatusLine(200, "OK");
generator.setContentTypeByExt("html"); generator.setContentTypeByExt("html");

Loading…
Cancel
Save