Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Форма с полем загрузки картинки, Помогите пожалуйста разобраться 
V
    Опции темы
NetJunky
Дата 28.7.2009, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 11.5.2008
Где: Tallinn

Репутация: 0
Всего: 0



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

В другой теме нашёл следующий код:
Цитата(fesor @  27.7.2009,  14:42 Найти цитируемый пост)

Ну можно конечно сделать вот так:
Код

/**
* bool Upload( string $input, string $saveas[,  int $limit ])
* @ $input - переменная содержит название поля с файлом
* @ $saveas - путь и имя файла для сохранения
* @ $limit - лимит по "весу" файла (по умолчанию в 10 метров)
**/
function upload($input, $saveasб $limit=10000)
{
    if(!isset($_FILE[$input]))
        return false;
    if($_FILE[$input]['size'] > intval($_POST['MAX_FILE_SIZE']))
        return false;
    if(strtolower(substr($_FILE['ufile']['name'], -4)) == '.jpg')
        return false;
    //Собственно загрузка
    return move_uploaded_file ( $_FILE[$input]['tmp_name'] , $saveas ); //Выведет true если удалось
   
}


Для получения \этой самой "временной даты" проще использовать обычный UNIX TIMESTAMP, тобиш команду time(). Ну или если извращенец -
Код

round(microtime(1), 3)*1000;



Мне не сказали должен ли быть конкретный формат изображения или может быть любой из доступных(gif, jpg, png).
Исходя из того, что видел лимит изображения максимум 5 метров.

В этом коде меня озадачил ассоциативный массив $_FILE, похожий на системный. Но я пока про него ничего не нашёл.

Помогите пожалуйста разобраться.
Всем заранее спасибо.


--------------------
Sleep, those little slices of death; Oh how I loathe them. © Edgar Allan Poe
Таллиннцы http://vingrad.ru/groups.php?action=group_...mp;group_id=139

Для записи данных объёмом 1 Терабайт на бумагу, нужно срубить 50000 деревьев.
PM MAIL WWW ICQ Skype MSN   Вверх
fesor
Дата 28.7.2009, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 16.7.2009
Где: Минск

Репутация: 4
Всего: 4



http://docs.php.net/manual/ru/reserved.variables.files.php - почитай.

Та функция небудет работать корректно изза того что там проверка идет не по переменной $limit а по $_POST['MAX_FILE_SIZE']. И об этом говорилось (опять же это только чтобы уточнить).

По поводу твоей проблемы - ну если загружать только один файл, то просто при субмите исполняется PHP скрипт который и заносит это все в базу. А если картинок несколько... то тут сложнее. Проще всего просто в форме добавить множественную загрузку файлов (ну там просто в имени инпута напишешь просто name="images[]") и в итоге у тебя должне получиться массив $_FILE['images']. Его через цикл прогнать и загрузить сразу все картинки.

Это сообщение отредактировал(а) fesor - 28.7.2009, 12:50
PM MAIL WWW   Вверх
Ипатьев
Дата 28.7.2009, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



В той же теме, где был код от fesor, была и ссылка на статью документации, где описывается как загрузка в целом, так и массив $_FILES
В документации, опять же, легко этот массив найти.
Как можно было не найти описание - не понимаю. 

Для начала надо по этой ссылке потренироваться просто загружать файлы. Потом рекомендую отрезать от имени файла расширение, добавлять к нему id записи и сохранять в каталоге картинок. Вот и вся привязка.
PM MAIL   Вверх
fesor
Дата 28.7.2009, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 16.7.2009
Где: Минск

Репутация: 4
Всего: 4



хм... а об этом я не подумал))
p.s. А если ID записи еще нету? как тогда?
PM MAIL WWW   Вверх
Ипатьев
Дата 28.7.2009, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Как это нету? В условии написано: "привязать к записи". Если есть запись - есть и  id
PM MAIL   Вверх
lelik133
Дата 28.7.2009, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 517
Регистрация: 5.2.2003
Где: Москва

Репутация: 5
Всего: 14



тогда добавляете запись. Получаете ее id, а потом выполняете операции с картинкой
PM ICQ   Вверх
fesor
Дата 28.7.2009, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 16.7.2009
Где: Минск

Репутация: 4
Всего: 4



Нет, допустим для создания поста вам необходимо оформить его картинками. ID поста нету. Мы должны загрузить картинки на сервер. Как потом идентифицировать эти картинки как именно для того поста?
PM MAIL WWW   Вверх
Ипатьев
Дата 28.7.2009, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



fesor, насколько я понял, здесь существует правило "один топик - один вопрос". И обсуждать здесь втою проблему не разрешается.
Но лично я не вижу проблемы вовсе. Создаем пост, потом оформляем его картинками. Зачем делать наоборот, создавая себе трудности на пустом месте - я не понимаю.
PM MAIL   Вверх
fesor
Дата 28.7.2009, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 16.7.2009
Где: Минск

Репутация: 4
Всего: 4



Согласен)) Ждем вопросы автора)
PM MAIL WWW   Вверх
NetJunky
Дата 28.7.2009, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 11.5.2008
Где: Tallinn

Репутация: 0
Всего: 0



Дас. Снова, что-то не так сделал. Странно и вправду, как не нашёл описания зарезервированных переменных. Щас протестирую. Идеюс добавлением ид к картинке я понял. Можно например коле с имененм картинки оставить пустым и вначале произвести запись, а потом уже считав добавить ид записи к картинке, обновить запись и залить картинку в папку.

Если я верно понял.


--------------------
Sleep, those little slices of death; Oh how I loathe them. © Edgar Allan Poe
Таллиннцы http://vingrad.ru/groups.php?action=group_...mp;group_id=139

Для записи данных объёмом 1 Терабайт на бумагу, нужно срубить 50000 деревьев.
PM MAIL WWW ICQ Skype MSN   Вверх
lelik133
Дата 28.7.2009, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 517
Регистрация: 5.2.2003
Где: Москва

Репутация: 5
Всего: 14



можно не использовать поле с именем картинки вообще. Если для одной записи планируется только одна картинка, то просто называете картинкупо id записи, при заливке в нужную папку.
PM ICQ   Вверх
NetJunky
Дата 20.8.2009, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 11.5.2008
Где: Tallinn

Репутация: 0
Всего: 0



Я в шоке. Может кто-то смогбы прояснить ситуацию. У меня в поле есть форма для загрузки картинки. Всё работало, но вот работодатель говорит, что почему-то картинки у товаров не изменяються, когда он пытается. Попробовал я на тех файлах, где это 100% работало., обнаружил тоже самое.

Парился и так и так. Ограничений нету никаких. Посмотрел, что размер картинки у всех загруженых ранее не более 600, как в высоту так и в длину. Вы не представляете моё удивление, когда я попробовал с такими размерами туже картинку и она загрузилась и перезаписалась.

Может быть есть какие-то серверные установки, которые могут отвечать за это?
Просто иначе не пойму в чём дело.


--------------------
Sleep, those little slices of death; Oh how I loathe them. © Edgar Allan Poe
Таллиннцы http://vingrad.ru/groups.php?action=group_...mp;group_id=139

Для записи данных объёмом 1 Терабайт на бумагу, нужно срубить 50000 деревьев.
PM MAIL WWW ICQ Skype MSN   Вверх
supervladislav
Дата 20.8.2009, 04:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


///\\\///\\\///\\\
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 18.5.2006

Репутация: -8
Всего: -9



  опера возвращает image/pjpeg скорее из-за ентого 

Это сообщение отредактировал(а) supervladislav - 20.8.2009, 04:39
PM MAIL   Вверх
Ипатьев
Дата 20.8.2009, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Доступ к коду есть?
Если есть, то в чем проблема взять и посмотреть, какая именно проверка отбивает картинку?
Неужели это кажется менее эффективным, чем сидеть, гадать про какие-то "настройки"?
PM MAIL   Вверх
NetJunky
Дата 20.8.2009, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 11.5.2008
Где: Tallinn

Репутация: 0
Всего: 0



Ипатьев, я код и писал. Так что могу сказать, что не гадаю, а знаю, что никаких аграничений не вводил.
Если речь о каком-то другом коде, то можно и пояснить о каком.

supervladislav, использую мозиллу и всё это проверял.
Вчера в одном оптимайзере открыл картинку и не меняя размеры сохранил. KB уменьшились по размеру. Картинка загрузилась.
Попробовал сделать, тоже самое сегодня в фотошопе, где также размеры не менял, но KB увеличилось. Картинка не загрузилась.

Возникает вопрос, может всётаки дело в каких-то серверных настройках?

upd. Заметил также, что картинка была размерами 1000х750. После загрузки я обратил внимания, что как-то нету там тысячи в длину и был прав. В свойствах загруженной картинки были размеры, 600х450.

Я уже совсем не пойму, что творится.

Это сообщение отредактировал(а) NetJunky - 20.8.2009, 11:21


--------------------
Sleep, those little slices of death; Oh how I loathe them. © Edgar Allan Poe
Таллиннцы http://vingrad.ru/groups.php?action=group_...mp;group_id=139

Для записи данных объёмом 1 Терабайт на бумагу, нужно срубить 50000 деревьев.
PM MAIL WWW ICQ Skype MSN   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0914 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.