1

На сайте потребовалось реализовать загрузку изображений, да так, чтобы было превью и прочее. Начал разбираться как это сделать и понял, что не понимаю как этот момент устроен.

Простой пример:

<input type="file" name="myImage" accept="image/*" >

Когда пользователь выбирает картинку, то соответственно я могу отследить файл в скрипте:

$('input[name=myImage]').change(function () {
    var files = this.files;
    ....
});

Но я не совсем понимаю как работает момент загрузки файлов. После того, как польователь выбрал файл(ы), далее что происходит? Те объекты, которые я обрабатываю в срипте, они ссылаются на файлы локального диска пользователя, или же на их копию в браузере, а она соответственно загружается, что требует времени?

Вопрос возник от того, что я не понимаю, в таком варианте отправки на сервер (не аяксом), возможно ли (нужно?) реализовать визуализацию процесса загрузки (загружено 30% из 100%).

rugleb
  • 141
  • 2
    До того как пользователь нажмет "загрузить файл" (Если такова кнопка есть), то input file будут ссылаться на файлы локального диска пользователя D:\Documents\Изображения\image.png (Если не ошибаюсь) – Jengas Feb 18 '18 at 21:17
  • 1
    браузер просто хранит ссылки на файлы. Файлы потом еще нужно загрузить. Для этого воспользуйтесь FileReader API. ....https://ru.stackoverflow.com/questions/741929/%D0%97%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%B8%D1%82%D1%8C-%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E-filereader , по ссылке на мой вопрос, там и код можете посмотреть – Dmytro Feb 19 '18 at 07:28
  • Вот это то, что мне и надо было, спасибо! Соответственно файлы начинают загружаться только после отправки формы и на превью время для загрузки не тратится? – rugleb Feb 19 '18 at 09:57

0 Answers0