Предварительный просмотр загрузки HTML-файла Javascript - PullRequest
4 голосов
/ 11 августа 2009

Я хочу показать PREVIEW что-то для поста, поэтому взял подробности по JS

но проблема возникает, когда дело доходит до <input type="file", это не дает полный путь к файлу

Ex: если я сделаю

$("#image").val();

дает только «Sunset.jpg», а не C: \ Documents and Settings \ All Users .... \ Sunset.jpg

есть идеи, как получить это значение детализации?

Ответы [ 5 ]

10 голосов
/ 11 августа 2009

Хотя, как уже отмечали другие, вы не можете узнать полный путь к файлу в JavaScript, возможно, для вас все равно будет работать совершенно другой подход к проблеме.

Вы можете загрузить фотографию автоматически, как только посетитель выберет ее (поведение, которое вы видите в GMail, среди других приложений), поэтому оно находится на вашем сервере, даже когда посетитель продолжает взаимодействовать с вашей страницей. На этом этапе показ предварительного просмотра так же прост, как и его отправка из собственной (теперь серверной) копии изображения.

1 голос
/ 30 мая 2010

Теперь это возможно с Firefox 3.6 https://developer.mozilla.org/en/DOM/FileList

Хотя код, который они показывают, похоже, не работает в Chrome, поэтому я предполагаю, что даже API-интерфейс HTML5 JavaScript для подобных вещей еще не стандартизирован.

1 голос
/ 11 августа 2009

Это из соображений безопасности, поэтому вы не можете читать файлы из системы пользователей с помощью JavaScript.

Если вам удастся найти обходной путь, вероятно, поставщики браузеров выпустят исправления безопасности раньше, чем позже. Я знаю, потому что в более ранних версиях, если IE, было возможно прочитать полный путь и, следовательно, отобразить предварительный просмотр, по крайней мере, если файл был изображение. Я использовал это в пользовательском интерфейсе CMS, но, конечно, эта изящная функция была разрушена релизом службы IE: - /

В общем, контроль загрузки файлов является своего рода «черным ящиком» по соображениям безопасности. У вас есть только очень ограниченный доступ к сценариям и стилизации. Это означает, что вы не можете отслеживать или загружать файлы без ведома пользователя, или же вы не можете обмануть пользователя в загрузке файлов с обманчивым интерфейсом.

0 голосов
/ 11 августа 2009

Насколько я знаю, в javascript нет способа делать то, что вы хотите. Это довольно большая проблема безопасности - доступ к файловой системе в браузере.

Есть несколько плагинов для браузера (java / flash / gears), которые могут позволить вам делать подобные вещи. Я знаю, что с помощью шестерен вы можете заставить пользователя выбрать файл - и открыть его для чтения содержимого с помощью JS.

0 голосов
/ 11 августа 2009

Это функция безопасности. Вы не можете изменить или получить весь путь в безопасных браузерах, поэтому то, что вы хотите сделать, не может быть сделано. Если вы используете что-то вроде Flash, Silverlight или Java, то это должно быть относительно просто.

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