Jquery - загрузить img с локального диска - PullRequest
1 голос
/ 04 июня 2011

У меня есть следующие теги HTML:

Пользователь выбирает файл, и я хочу просмотреть этот файл в размере изображения как событие onchange:

$(document).ready(function(){
    $("#bigPicture").change(function() {
    alert($("#bigPicture").val());
    $("#test1").attr("src",$("#bigPicture").val());
     });
});

У меня очень странное поведение:

1) в качестве предупреждения я получил C:\fakepath\\[file name], хотя я нахожусь на машине с Ubuntu + Google Chrome.

2) мой файл не загружен в тег img.

3) в FireFox я получил только предупреждение [имя файла] без пути. и изображение также не отображается.

Я что-то не так делаю? Это какое-то ограничение безопасности в этих браузерах?

Ответы [ 2 ]

2 голосов
/ 04 июня 2011

http://dev.w3.org/html5/spec/Overview.html#file-upload-state

По историческим причинам атрибут IDL значения ставит перед именем файла строку «C: \ fakepath \».Некоторые устаревшие пользовательские агенты фактически включали полный путь (который был уязвимостью в безопасности).

имя файла

При получении он должен вернуть строку«C: \ fakepath \», за которым следует имя первого файла в списке выбранных файлов, если таковые имеются, или пустая строка, если список пуст.При установке, если новое значение является пустой строкой, оно должно очистить список выбранных файлов;в противном случае он должен выдать исключение INVALID_STATE_ERR.

1 голос
/ 04 июня 2011

Я думаю, что вы можете использовать файловый URI, например file: /// c: /test/test.jpeg.

Или, если файл является локальным, вы можете сделать его относительным путем к месту, где подается html.

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