Привет. Я хочу загружать некий файл (картинка, png) на сервер.
Форма отправки выглядит так:
<form method=post action="/en/upload/" enctype="multipart/form-data">
<tr>
<input type=file name=file></td>
<input class=b type=submit value="Upload"></td>
</form>
Формирую заголовок и загружаю. Если не указывать Content-type файла, то сервер ругается на неверный тип файла (логично). Если указать "Content-type: image/png", то сервер возвращает ошибку. Если указать любой другой тип файла, то сервер просто говорит, что тип неверный (как в первом случае). Что же делать, чтобы загрузить этот злосчастный PNG?
QString boundary = "AaB03xGtroorl3984";
QHttpRequestHeader header("POST", "/en/upload/", 1, 1);
header.setValue("Host", "piccy.info");
header.setValue("Content-type", "multipart/form-data; boundary=" + boundary);
header.setValue("Cache-Control", "no-cache");
header.setValue("Accept","*/*");
QByteArray byt(openFilesPath.toUtf8());
bytes.append("--" + boundary + "\r\n");
bytes.append("content-disposition: ");
bytes.append("form-data; name=\"file\"; filename=\"" + byt + "\"\r\n");
//bytes.append("Content-type: image/png\r\n");
bytes.append("Content-Transfer-Encoding: binary\r\n");
bytes.append("\r\n");
bytes.append(userfile->readAll());
userfile->close(); // the file is opened earlier in the code
bytes.append("\r\n");
bytes.append("--" + boundary + "--");
int contentLength = bytes.length();
header.setContentLength(contentLength);
http->setHost("piccy.info");
bool httpRequestAborted = false;
httpGetId = http->request(header, bytes);