Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Загрузка изображений

Сообщения:  [1-10]    [11-20]   [21-30]  [31-34] 

 
 автор: kis-kis   (18.11.2008 в 12:05)   письмо автору
 
   для: sim5   (18.11.2008 в 11:57)
 

Спасибо, сейчас попробую.

  Ответить  
 
 автор: sim5   (18.11.2008 в 11:57)   письмо автору
 
   для: kis-kis   (18.11.2008 в 11:47)
 

Ну если вам это так нужно, то в разделе HTML+JS есть примеры вывода картинок. Разница для вас будет лишь в том, что вы будете путь к картинке указывать локалного компьютера, полученный от атрибута value элемента file, а не сетевой. Сами примеры есть в указанном разделе, смотрите.
Собственно самый простой пример, это сделать видимым, после выбора пользователем изображения, например, элемент DIV с необходимым позиционированием относительно поля формы, в котором прописан элемент IMG, src которому вы и указываете тот, что получите у поля file. Размеры изображения укзывать в процентах, в сторону уменьшения, вот вам и предпросмотр.

  Ответить  
 
 автор: kis-kis   (18.11.2008 в 11:47)   письмо автору
 
   для: sim5   (18.11.2008 в 11:03)
 

Отсюда - хотите чтобы картиночку показывало рядом с полем выбора, значит используйте JS. На время "работы" страницы на стороне пользователя, он будет видеть картиночку выбранного файла.

Не поможете реализовать? :)

  Ответить  
 
 автор: kis-kis   (18.11.2008 в 11:07)   письмо автору
 
   для: sim5   (18.11.2008 в 11:03)
 

-

  Ответить  
 
 автор: sim5   (18.11.2008 в 11:03)   письмо автору
 
   для: kis-kis   (18.11.2008 в 10:51)
 

Чего смотреть? Суть проста. Если вы, например, загрузите изображение от пользователя себе на сервер только в том случае, пока он не представиться в текстовом поле как "Петя", то проверяя это текстовое поле, вы будете знать "Петя" он или нет. И пока нет, возвращаете ему назад форму, пусть вводит "Петя". Как только вы получили необходимое, проверяете параметры присланного файла ($_FILES). Если загрузка файла прошла без ошибок ($_FILES['fielname']['error'] - не содержит ошибок), проверяете условия на загрузку файлов. Если условия не удовлетворяют вашим, возвращаете форму пользователю с полем имени уже заполненным ранее пользователем (Петя). И так, пока у кого нервы крепче - у Пети или у вашего скрипта :)
Как только все если в норме, вот тут и копируйте функцией move_uploaded_file() файл из временной папки в папку назначения.
А если вы не хотите постоянной перезагрузки страницы при ошибках ввода (но только текстовых полей, списков, радиокнопок, чекбоксов и т.п.), то используйте Ajax - вам уже приводили пример этого.

PS. Атрибут value поля элемента file формы только для чтения! А это значит, что вы не сможете указать ему значение, например, путь к файлу на локальной машине, которое вы можете получить от пользователя при отправке формы. Другими словами, при ошибках загрузки изображения, этот путь можете выбросить в помойку - присвоить его форме уже нельзя. Пользователь обязан выбрать файл вновь. Отсюда - хотите чтобы картиночку показывало рядом с полем выбора, значит используйте JS. На время "работы" страницы на стороне пользователя, он будет видеть картиночку выбранного файла.

  Ответить  
 
 автор: kis-kis   (18.11.2008 в 10:51)   письмо автору
 
   для: sim5   (18.11.2008 в 10:41)
 

Да, с регистрацией, я Вам в пм отправил данные, чтобы Вы посмотрели.

  Ответить  
 
 автор: sim5   (18.11.2008 в 10:41)   письмо автору
 
   для: kis-kis   (18.11.2008 в 10:38)
 

Какое фото и о какой загрузке речь, если это страница с регистрацией?

  Ответить  
 
 автор: kis-kis   (18.11.2008 в 10:38)   письмо автору
 
   для: sim5   (18.11.2008 в 10:09)
 

Мы никак не можем понять друг друга. На счет copy() понял, вот пример, что я хочу получить.

_http://www.e1.ru/auto/sale/manage.php

Посмотрите, плиз, так станет понятно. Просто загрузите, одно фото не заполняя ниодного поля. Заранее спасибо.

  Ответить  
 
 автор: sim5   (18.11.2008 в 10:09)   письмо автору
 
   для: kis-kis   (18.11.2008 в 10:02)
 

Пороверку ввода текстовых полей, выбор селекта и т.п.., это уже Ajax, если не хотите перезагрузки. А остальное выбросить, еще раз вернуться к мануалу, прочитать, и уяcнить, что не стоит для загрузки файлов на сервер использовать функцию copy(), для этого существует функция move_uploaded_file() !
Если нет ошибок при загрузке файла на сервер (в частности получем его размер и другое), то ни к чему проверять на "пустоту" временное имя файла.

  Ответить  
 
 автор: kis-kis   (18.11.2008 в 10:02)   письмо автору
2.2 Кб
 
   для: sim5   (18.11.2008 в 09:21)
 

Хорошо, посмотрите, плиз, вложенный файл.

Если Вы загрузите картинку, и не заполните текстовое поле, то потом вам будет нужно снова их загружать. Разве я не прав? (хотя в приведенном мной примере они загружаются в любом случае, даже если текст. поле не заполнено).

Тогда вопрос, а как сделать, рядом с полем file - маленькое превью из файлов с названием s_?

Можно конечно сделать так

<input type=\"hidden\" name=\"p1\" value=\"".$_FILES["photo_1"]['name']."\">


И путь к картинке тогда будет выглядеть так - <img src=\"s_".$_POST['p1']."\">

Но если трижды отправить форму с незаполненным текст. полем, то картинка теряется. Можно ли это исправить?
Спасибо.

  Ответить  

Сообщения:  [1-10]    [11-20]   [21-30]  [31-34] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования