javascript — получить файл на стороне сервера с помощью приложения php и windows 8

Я пытаюсь загрузить файл на сервер (в настоящее время в моем локальном wamp), с приложением Windows 8, работающим с HTML и JavaScript.
Итак, это мой код:

(function () {
"use strict";

WinJS.Binding.optimizeBindingReferences = true;

var app = WinJS.Application;
var activation = Windows.ApplicationModel.Activation;

app.onactivated = function (args) {
if (args.detail.kind === activation.ActivationKind.launch) {
if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {

} else {

}
args.setPromise(WinJS.UI.processAll().then(function () {

document.getElementById('boutonEnvoyer').onclick = function () {

var selector = Windows.Storage.Pickers.FileOpenPicker();

selector.fileTypeFilter.replaceAll(["*"]);

selector.pickSingleFileAsync().then(function (file) {

if (!file) {
console.log('No file selected');
return;
}

var url = 'http://192.168.10.28/videomaton/index.php';

UploadImage(url, fichier);

});

};

var UploadImage = function (urlString, file) {

try {

var uri = Windows.Foundation.Uri(urlString);
var uploader = new Windows.Networking.BackgroundTransfer.BackgroundUploader();

//Set a header to be able to save the file
uploader.setRequestHeader("Filename", file.name);

//Create the operation
var upload = uploader.createUpload(uri, file);

upload.startAsync().then(

function succes(res) {
console.log('goodgame');
},
function error(res) {
console.log(res);
},
function progression(res) {
var pourcent = Math.round(res.progress.bytesSent * 100 / res.progress.totalBytesToSend);
console.log(pourcent + '%');
}
);

} catch (err) {

console.log('try and catch missed');

}

};

}));
}
};

app.oncheckpoint = function (args) {
};

app.start();
})();

Кажется, это работает, но вот моя проблема, мой консоль javascript прогрессирует до 100% и говорит «goodgame». Но на моей серверной стороне я ничего не получил.

Вот мой PHP-код:

$arr = get_defined_vars();

ob_start();
var_dump($arr);
$result = ob_get_clean();

file_put_contents('fichier.txt', $result);

И когда я смотрю в этот файл «fichier.txt», _Files пуст, но у меня есть строка с HTTP_FILENAME => 7.jpg (это имя моего изображения, которое я пытаюсь загрузить).

Спасибо вам за вашу помощь!
H4mm3R

0

Решение

Вам необходимо отправить multipart/form-data запрос.

Попробуйте (псевдокод):

var contentPart = new Windows.Networking.BackgroundTransfer.BackgroundTransferContentPart("myField", file.name);
contentPart.SetFile(file)

var parts = [];
parts.push(contentPart);

var uploader = new Windows.Networking.BackgroundTransfer.BackgroundUploader();
uploader.createUploadAsync(uri, parts).then(function (upload) {
upload.startAsync().then( ... );
});

Затем проверьте файл в PHP $_FILES переменная.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]