Задача - загрузить файл через форму на веб-сервер. Нашел в интернете следующий код:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
</head>
<body>
<form name="uploader" enctype="multipart/form-data" method="POST">
Отправить этот файл: <input name="userfile" type="file" />
<button type="submit" name="submit">Загрузить</button>
</form>
</body>
</html>
<script type="text/javascript">
$("form[name='uploader']").submit(function(e) {
var formData = new FormData($(this)[0]);
$.ajax({
url: 'file.php',
type: "POST",
data: formData,
async: false,
success: function (msg) {
alert(msg);
},
error: function(msg) {
alert('Ошибка!');
},
cache: false,
contentType: false,
processData: false
});
e.preventDefault();
});
</script>
Обработчик на сервере:
<?php
$uploaddir = $_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.'uploads'.DIRECTORY_SEPARATOR;
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
$out = "Файл корректен и был успешно загружен.\n";
} else {
$out = "Возможная атака с помощью файловой загрузки!\n";
}
echo $out;
?>
Вся проблема в том, что на сервере нет и не будет php, следовательно нужно обработчик написать только с использованием C++ и Qt. Как это сделать и можно ли вообще это сделать?
Другой вариант - загружать через JavaScript методом put, однако найденный в интернете пример не работает.