Чтение файла в приложении Windows Metro javascript
Это правильный способ прочитать содержимое файла, выбранного сборщиком файлов? Мне нужно прочитать данные изображения, чтобы отправить их веб-службе в моем приложении Windows Metro Javascript. Я использую функцию readFile с обратным вызовом, который возвращает параметр evt, а затем использую encodeURIComponent (evt.target.result):
document.getElementById("btnUpload").onclick = function () {
var input = document.getElementById("file_input");
readFile(input.files[0], function(file, evt)
{
WinJS.xhr({
type: "post",
url: "http://servlett.domain.com:8080/Servlet/addImage",
headers: { "Content-type": "application/x-www-form-urlencoded" },
data: "fk_floor_id=" + currentFloorId + "&map=" + encodeURIComponent(evt.target.result)
}).then(
function (xhr) {
var success = xhr.response;
}, function (xhr) {
var error = xhr.response;
}
);
});
Параметр evt.target.result извлекается с помощью следующего метода:
function readFile(file, callback) {
var reader = new FileReader();
reader.onload = function (evt) {
if (typeof callback == "function")
callback(file, evt);
};
reader.readAsText(file);
}
где file_input является компонентом ввода внутри следующей формы:
<form action="" method="post">
<input type="file" id="file_input" />
<button type="button" id="btnUpload">Upload</button>
</form>
Заранее спасибо.