Мультизагрузка имеджей

Bu-Bu

Любитель PHP
Мультизагрузка имеджей

Задумался над задачей: как массив текстовых ссылок типа C:\DOCS\1.jpg; C:\DOCS\2.jpg и т.д. заставить превратиться в массив $_FILES. Фича нужна для одновременной загрузки списка товаров вместе с фотками в интернет-магазин. Кто-нибудь сталкивался с чем-то подобным? Пока нашел только Javascript, который по щелчкам по полю <input type=file> набирает на странице список нужных файлов (30 файлов - 30 раз лезь в "Обзор"), а нужно закачивать по 50-200 товаров единовременно. Хочется с помощью PHP+Javascript преображать $_POST["file"] в $_FILE["file"]. Буду благодарен за подсказки.
 

Bu-Bu

Любитель PHP
В том-то и дело, что апплетов полно, а вот на javascript нашел только одну фишку. Но если javascript умеет делать массив файлов по полю <input type=file>, то почему он не может сделать то же самое из массива $_POST["file"]?
 

SelenIT

IT-лунатик :)
Потому что javascript на клиенте, а массив $_POST["file"] - на сервере. Послать в faq по самым основам?
 

Bu-Bu

Любитель PHP
Автор оригинала: SelenIT
Потому что javascript на клиенте, а массив $_POST["file"] - на сервере. Послать в faq по самым основам?
Послать я и сам могу. У меня файл csv падает в форму (на стороне клиента - для умников). Хочу засовывать сразу в этот файл ссылки на имеджи. Вот и пытаюсь чтобы результат передачи в форму (для контроля валидности данных) имел вид " данные товара"... "ссылка на имедж" - Сабмит и все улетело в базу.

-~{}~ 17.08.06 16:57:

Как обычно решение лежало рядом и без геморроя:

Напоминаю: на входе массив ссылок на файлы $_POST["file"][0] = 1.jpg, $_POST["file"][1] = 2.jpg и т.д.

for ($i = 0;$i < count($_POST["file"]);$i++)
{
if (isset($_POST["file"][$i]))
{
$file = str_replace("\\","/",$_POST["file"][$i]);
$file = str_replace("//","/",$file);
$image = fread(fopen($file, "r"),filesize($file));

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

Bu-Bu

Любитель PHP
Автор оригинала: SelenIT
Bu-Bu
А сами файлы где лежат?
Хоть где. Я прописал str_replace для виндовского пути, потому как буду грузить на сервер с компа и другие администраторы аккаунтов.
 

SelenIT

IT-лунатик :)
Что значит "хоть где"? Вне файловой системы сервера этот "способ" не сработает. Разве что на локалхосте, когда ФС сервера и клиента одна и та же :).
 

Bu-Bu

Любитель PHP
Автор оригинала: SelenIT
Что значит "хоть где"? Вне файловой системы сервера этот "способ" не сработает. Разве что на локалхосте, когда ФС сервера и клиента одна и та же :).
Логично! На сервер еще не ходил. Ладно, буду ковырять дальше.
 

440hz

php.ru
Bu-Bu

я заворачивал папку с картинккми в zip и его ужо передавал, а на сервере разворачивал и рулил как душе угодно.
 

Bu-Bu

Любитель PHP
Автор оригинала: 440hz
Bu-Bu

я заворачивал папку с картинккми в zip и его ужо передавал, а на сервере разворачивал и рулил как душе угодно.
Для меня-то это не проблема, но администрировать будет около 100 челов, поэтому не хочется открывать всеобуч, а сделать все попрошше.
 

SelenIT

IT-лунатик :)
Если картинки достаточно большие, ИМХО лучше все же закачивать их по одной. Как один из вариантов (не факт что оптимальный) - обернуть каждый <input type=file> в iframe с отдельной формой и сабмиттить ее по onblur-у. Пока юзер выбирает следующий файл - предыдущий тихо закачивается, к моменту сабмита большой формы основная масса файлов уже на сервере...
 

Bu-Bu

Любитель PHP
Автор оригинала: SelenIT
Если картинки достаточно большие, ИМХО лучше все же закачивать их по одной. Как один из вариантов (не факт что оптимальный) - обернуть каждый <input type=file> в iframe с отдельной формой и сабмиттить ее по onblur-у. Пока юзер выбирает следующий файл - предыдущий тихо закачивается, к моменту сабмита большой формы основная масса файлов уже на сервере...
Дойдем и до этого. Пока сдул у капиталистов простенький Java-апплет. Вроде сильно не ругается, что Java-машина не загружена. Пытаюсь его приладить. По крайней мере он и ресайз делает и все остальное.

-~{}~ 20.08.06 17:09:

Все-таки, рассмотрев все за и против, повесил себе апплет Java, любезно предоставленный нашими немецкими коллегами. Весит 400 кб., но файлы кидает на сервер за милу душу. За раз одним щелчком отправил почти 1,5 мега фоток и даже не зажужжал. Теперича мои мучения из овер! Рекомендую.

-~{}~ 26.08.06 22:20:

Разобрался поподробнее в апплете.

В общем прикручивается к PHP, соединяется по HTTP или FTP, отправляет по 1 файлу последовательно с подтверждением передачи, делает качественный ресайз и загружается достаточно быстро. Из минусов - не работает по протоколу https и не использует ssh.
 

кекс

Новичок
Bu-Bu
если заглядываешь вдруг, чтой-та за аплет, и как его бы потрогать посчупать пазырить ну типа того..
 

Bu-Bu

Любитель PHP
Автор оригинала: кекс
Bu-Bu
если заглядываешь вдруг, чтой-та за аплет, и как его бы потрогать посчупать пазырить ну типа того..
Их нашел вообще-то несколько и не могу сказать: какой лучше. Делай запрос где-нидь на yahoo "multiupload" и получишь н-ное количество.
 
Сверху