В моем случае пользователь может выбрать файл и нажать кнопку отправки. после кнопки отправки я показываю файл в виде таблицы с именем файла, размером файла, ссылкой для скачивания и опцией удаления. теперь мое требование - если пользователь нажимает кнопку загрузки из таблицы, файл должен загружаться. Я не хочу загружать на стороне файлового сервера набор файлов.
var file = document.getElementById('documentfile').files[0];
var filename = document.getElementById('documentfile').files[0].name;
var size = document.getElementById('documentfile').files[0].size;
var ext = $('#documentfile').val().split('.').pop().toLowerCase();
var reader = new FileReader();
var fileurl;
reader.onload = function (e) {
fileurl = e.target.result;
}
reader.readAsDataURL(file);
var str = '<tr><td>1</td><td>' + filename + '</td><td>' + $('.sltdoctype').val() + '</td><td>' + niceBytes(size) + ' </td><td> <a href=' + fileurl + ' download>download</a></td><td> <a href = "#" class = "anchorRemove" >Remove</a> </td></tr>'
$('.document-table-str .table .tbody').append(str);
$('.document-table-str').show();
$('#documentfile').val("")
да, на самом деле я хочу предоставить опцию предварительного просмотра. пользователь может выбрать несколько файлов, если пользователь сомневается в своем файле, он или она загружают файл и проверяют. после окончательной отправки я загружу все файлы на сервер
Я обновил код
Лучше ... Итак, ваша проблема хорошо покрыта множеством дураков, все они указывают на это канонический. Я больше не могу голосовать за закрытие, так как я уже голосовал против первой ревизии. Но на самом деле вам даже не нужно запускать этот кошмар обратного вызова, просто используйте синхронный URL.createObjectURL(file)
. Намного лучше во всех отношениях. И я здесь не для того, чтобы судить или что-то в этом роде, но вы уверены, что хотите, чтобы ваш пользователь загружал файлы, которые он только что загрузил, со своего диска?
Чего ждать? вы хотите загрузить файл, не загружая его на свой сервер?