Div кнопка загрузки изображения - PullRequest
2 голосов
/ 05 января 2012

Как мне превратить div с идентификатором «uploadWrapper» из этого jsFiddle в кнопку, которая может загружать изображения - в основном, так же, как <input type="file">.Заранее спасибо.

РЕДАКТИРОВАТЬ - В ОТНОШЕНИИ ПОЛУЧЕННЫХ ОТВЕТОВ

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

Ответы [ 3 ]

2 голосов
/ 05 января 2012

Проверьте эту скрипку: http://jsfiddle.net/techfoobar/kM9aa/1/

Предварительный просмотр: как сказал Джастин Сатыр, использовать план HTML / JS для предварительного просмотра выбранного изображения невозможно, если только вы не загрузите его на свой сервер и не используете URL-адрес загруженного изображения.

1 голос
/ 05 января 2012

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

Я рекомендую использовать сторонний плагин для загрузки файлов, такой как Plupload , или подделать пользовательскую кнопку с помощью прогрессивного улучшения (невидимая кнопка загрузки файла, с пользовательской графикой под ней (конечно, не самая гибкая решений), как описано здесь:

http://filamentgroup.com/lab/jquery_custom_file_input_book_designing_with_progressive_enhancement/


События Plupload позволяют вам подключаться к событиям, которые могут произойти во время загрузки ajax-файла, и делать что-то с информацией о загрузке. Смотрите эту страницу с примерами того, какие данные ответа вы можете получить:

http://www.plupload.com/example_events.php

Вы можете получить данные ответа следующим образом:

id=p16in5el9ne2fc1rd08120in081
name=denim.png
size=20623
loaded=20623
percent=100
status=DONE
target_name=p16in5el9ne2fc1rd08120in081.png

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

Получив эти данные, вы можете подключить их и переключить изображение, выполнив что-то вроде этого (с помощью jQuery):

// Called when a file has finished uploading
FileUploaded: function(up, file, info) {
    $('#id_of_the_image').attr('src', 'uploads/' + file.target_name);
}
1 голос
/ 05 января 2012

Вы не можете, если вы не используете Flash, Silverlight или объект Active-X. Браузеры блокируют все операции просмотра файлов.

Вы можете сделать это, сделав <input type="file" /> невидимым, но над кнопкой, чтобы, когда пользователь нажимает кнопку, он фактически нажимал input.

UPDATE:

В ответ на ваш второй вопрос, для предварительного просмотра изображения вам потребуется опубликовать его на своем сервере, а затем указать src *1012* путь к изображению на вашем сервере.

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