Можно ли перезагрузить форму после изменения ввода type = "file"? - PullRequest
1 голос
/ 09 ноября 2009

Можно ли перезагрузить форму после изменения 'file-input'?

У меня есть форма, где пользователь может выбрать изображение для загрузки. У меня также есть скрипт php, который отображает размер изображения. Мне только интересно, можно ли перезагрузить форму OnChange для файла-ввода и затем вызвать php-код, который загружает картинку, чтобы пользователь мог ее предварительно просмотреть? Должен ли файл php быть таким же, как в? или я могу вызвать другой файл php только для загрузки изображения, с javascript?

ПРИМЕЧАНИЕ. Пользователь сможет загружать несколько изображений ...

Пожалуйста, направьте меня в правильном направлении с максимально возможной информацией ...

UPDATE: Нет AJAX ... это может быть сделано без него? Для меня не проблема, если страница перезагрузится, но с изображением на этот раз ... это можно сделать?

Спасибо

Ответы [ 4 ]

1 голос
/ 09 ноября 2009

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

Из того, что я вижу, вы просматриваете форму, которая обновит результат загрузки через AJAX. Чтобы сделать это, вам нужно взглянуть на такие javascript-фреймворки, как jQuery, и вы в основном загрузите изображение / измените его размер и покажете его пользователю без перезагрузки страницы.

Данные в форме будут обновлены с помощью вызова ajax, возвращаемого из PHP 'image resizer'

EDIT Примеры загрузки изображений ajax, которые могут помочь:

  1. http://www.phpletter.com/Demo/AjaxFileUpload-Demo/
  2. http://pixeline.be/experiments/jqUploader/test.php
0 голосов
/ 09 ноября 2009
<input type="file" name="…" onchange="this.form.submit();">

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

0 голосов
/ 09 ноября 2009

Когда вы отправляете форму, вся страница перезагружается. Единственный способ обойти это - поместить форму загрузки в iframe. Вы не можете загрузить изображение, не отправив форму, и вы не можете загрузить миниатюру изображения, вы должны загрузить все изображение, если вы не используете flash, silverlight или java.

0 голосов
/ 09 ноября 2009

У вас есть две проблемы здесь.

1) Несколько загрузок, поэтому предварительный просмотр должен быть в таблице для каждой загрузки. Пользователь нажмет submit или send, и браузер отправит его на сервер. Для этого вам нужно найти скрипт php, который поможет вам сделать это асинхронно. Один из них мне показался полезным:

2) В ответе iframe вы можете передать URL-адреса миниатюр. Это может быть идентификатор каждого файла. Лучше всего создать тег изображения, который вызывает скрипт php, который будет возвращать изображение напрямую в виде эскиза.

<img src="/imageview.php?id=3&mode=thumbnail" />

Таким образом, вам не нужно сохранять миниатюры, но пользователь сможет сразу же увидеть их, когда вы обновите свойство src новым URL-адресом.

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