diff --git a/src/webui/abstractrequesthandler.cpp b/src/webui/abstractrequesthandler.cpp index fc9479100..0ec2b73c8 100644 --- a/src/webui/abstractrequesthandler.cpp +++ b/src/webui/abstractrequesthandler.cpp @@ -50,7 +50,7 @@ HttpResponse AbstractRequestHandler::run() if (isBanned()) { status(403, "Forbidden"); - print(QObject::tr("Your IP address has been banned after too many failed authentication attempts.")); + print(QObject::tr("Your IP address has been banned after too many failed authentication attempts."), CONTENT_TYPE_TXT); } else { diff --git a/src/webui/extra_translations.h b/src/webui/extra_translations.h index bd9018ca4..840228afe 100644 --- a/src/webui/extra_translations.h +++ b/src/webui/extra_translations.h @@ -65,7 +65,8 @@ static const char *__TRANSLATIONS__[] = { QT_TRANSLATE_NOOP("HttpServer", "Invalid Username or Password."), QT_TRANSLATE_NOOP("HttpServer", "Password"), QT_TRANSLATE_NOOP("HttpServer", "Login"), - QT_TRANSLATE_NOOP("HttpServer", "qBittorrent web User Interface") + QT_TRANSLATE_NOOP("HttpServer", "qBittorrent web User Interface"), + QT_TRANSLATE_NOOP("HttpServer", "Upload Failed!") }; static const struct { const char *source; const char *comment; } __COMMENTED_TRANSLATIONS__[] = { diff --git a/src/webui/httptypes.h b/src/webui/httptypes.h index 614e9a4d2..9eabf577c 100644 --- a/src/webui/httptypes.h +++ b/src/webui/httptypes.h @@ -40,12 +40,12 @@ const QString HEADER_CONTENT_TYPE = "Content-Type"; const QString HEADER_CONTENT_ENCODING = "Content-Encoding"; const QString HEADER_CONTENT_LENGTH = "Content-Length"; -const QString CONTENT_TYPE_CSS = "text/css"; +const QString CONTENT_TYPE_CSS = "text/css; charset=UTF-8"; const QString CONTENT_TYPE_GIF = "image/gif"; -const QString CONTENT_TYPE_HTML = "text/html"; -const QString CONTENT_TYPE_JS = "text/javascript"; +const QString CONTENT_TYPE_HTML = "text/html; charset=UTF-8"; +const QString CONTENT_TYPE_JS = "text/javascript; charset=UTF-8"; const QString CONTENT_TYPE_PNG = "image/png"; -const QString CONTENT_TYPE_TXT = "text/plain"; +const QString CONTENT_TYPE_TXT = "text/plain; charset=UTF-8"; struct HttpEnvironment { diff --git a/src/webui/requesthandler.cpp b/src/webui/requesthandler.cpp index b53baf8bf..dea1a42ba 100644 --- a/src/webui/requesthandler.cpp +++ b/src/webui/requesthandler.cpp @@ -263,11 +263,12 @@ void RequestHandler::action_command_upload() QBtSession::instance()->addTorrent(filePath); // Clean up fsutils::forceRemove(filePath); - print(QLatin1String("")); } else { qWarning() << "I/O Error: Could not create temporary file"; + status(500, "Internal Server Error"); + print(QObject::tr("I/O Error: Could not create temporary file."), CONTENT_TYPE_TXT); } } } diff --git a/src/webui/www/public/upload.html b/src/webui/www/public/upload.html index f00f48bfc..c9bc1218f 100644 --- a/src/webui/www/public/upload.html +++ b/src/webui/www/public/upload.html @@ -9,10 +9,15 @@ function stateChangeHandler() { if (this.readyState == this.DONE) { - if (this.status == 200) + if (this.status == 200) { window.parent.closeWindows(); - else - alert("Upload Failed!"); + } else { + if (this.responseText != "") { + alert(this.responseText); + } else { + alert("_(Upload Failed!)"); + } + } } } @@ -44,7 +49,9 @@ window.addEvent('load', function() { // is XHR2 available? var xhr = new XMLHttpRequest(); if (xhr.upload) - $('submitbutton').addClass("invisible"); + $('submitbutton').addClass("invisible"); + else + $('upload_frame').addEvent('load', function(e) { window.parent.closeWindows(); }); }); @@ -55,7 +62,7 @@ window.addEvent('load', function() {
-