Здравствуйте! Я пытаюсь заставить его работать с функцией loadDocument
, для работы которой нужен URL-адрес загруженных файлов с локального компьютера пользователя. Я пишу API для загрузки документа с локального компьютера пользователя и отображения его в веб-ридере.
Это моя кнопка загрузки:
<input type="file" id="input" onchange="module.onLoadSelection();" alt="Browse" name="upload"/>
Это моя функция без fileReader:
var onLoadSelection = function () {
var select = document.getElementById('input');
if (select && select.value) {
var id= '';
var url = select.files.item(0).name;
module.loadDocument(url,id);
}
};
Это моя функция с fileReader:
var loadTest = function (input) {
var file = document.querySelector('input[type=file]').files[0];
console.log("file loaded! ->", file); // i can read the obj of my file
var reader = new FileReader();
var id = ''; // don't need rightnow
var url = reader.readAsDataURL(file);
console.log("url :", url); // show me undefined....
module.loadDocument(url,id);
}
Я пытаюсь получить URL загруженного файла с компьютера пользователя, чтобы моя функция loadDocument работала. Ей нужен параметр url для работы.
loadDocument
- это функция API, я предполагаю, что не могу получить путь к файлу моего пользователя по соображениям безопасности.
Что мне нужно изменить / обновить на моей loadDocument();
функции для работы?
Редактировать: На самом деле, ничего не изменится. Правильный способ прочитать мой файл был:
<input type="file" id="input" onchange="module.onLoadSelection(this.files);" alt="Browse" name="upload"/>
var onLoadSelection = function (files) {
if (files && files.length == 1) {
var id = '';
var url = URL.createObjectURL(files[0]);
module.loadDocument(url,id);
}
};