Проблемы с выбором файлов с помощью FileReader в HTML5 - PullRequest
1 голос
/ 11 августа 2011

Я пытаюсь сделать сценарий предварительного просмотра видео. Я хочу одну функцию для перетаскивания и файлов, выбранных элементом input type = "file". Вот функция:

                function FileHandler(files){
                    for(var i = 0; i < files.length; i++){

                        file = files[i];

                        var reader = new FileReader();
                        reader.onload = function(evt){
                            var VideoSpan = document.createElement('span');
                            var Video = document.createElement('video');
                            VideoSpan.classList.add('VideoPreviewSpaner');
                            Video.classList.add('VideoPreview');
                            Video.controls="controls";
                            Video.src = evt.target.result
                            VideoSpan.appendChild(Video);
                            document.getElementById('VideoWindow').appendChild(VideoSpan);
                            document.getElementById('VideoWindow').style.display = "block";
                        }
                        reader.readAsDataURL(file);
                    }
                }

А потом

<input type="file" id="OpenFileDialog" multiple onchange="FileHandler(this.files)">

И обработчик dnd:

            function d(e){
                e.stopPropagation();
                e.preventDefault();
                files = e.dataTransfer.files;
                FileHandler(files);
            }
            document.getElementById('droparea').addEventListener('drop',d,false);

Я действительно не вижу, что не так, reader.onload никогда не вызывается! Было бы здорово с некоторой помощью!

1 Ответ

2 голосов
/ 30 октября 2011

Попал сюда, когда столкнулся с подобной проблемой.

Попробуйте реализовать onerror , и вы увидите, что Google Chrome выдает "Ошибка безопасности". То же самое работает и в Firefox (7.0.1).

Это связано с локальным ограничением безопасности файлов, которое Google Chrome наложил на разработчиков. Это ограничение безопасности локальных файлов действительно сказывается на быстром тестировании разработчиков!

Разместите HTML на веб-сервере, проблема решена. Нет веб-сервера? попробуйте на Firefox! - опция allow-file-access-from-files никогда не работала для меня!

Лучший, Шридхар

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...