- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Пример где то в нете нашел, а потом подделал.
for($i = 0; isset($_POST["param{$i}"]); $i++) { .. } ?
это, конечно, без всех условий "предохранения"...
St.I.An добавил 21.12.2009 в 22:37
или
<?
for($i = 1; isset($_POST["fupload".(($i > 1) ? $i : '')]); $i++) {
.. // ваш небольшой код
} ?
?>
как-то так, сам не тестил.
Спасибо за помощь, теперь понял как работает, все сделал, работает.
А еще можно сделать "размножение" инпутов. Типа выбрал файл - появился новый пустой инпут для еще одного файла. :)
Если интересно, могу подсказать как сделать :)
Пекор, http://www.php.net/manual/en/features.file-upload.post-method.php
Я помню в своё время спионерил неплохой яваскрипт у почты яндекса, там кнопочка +/- и за раз сколько влезит мона файлов загружать, но у меня больше 5ти чото никогда не получалось, остальные не видит, мож какуюто деталь упустил..
<script>
function xdropFile(btn){
if(document.getElementById) {
tr = btn;
while (tr.tagName != 'TR') tr = tr.parentNode;
tr.parentNode.removeChild(tr);
xcheckForLast();
}
}
function xaddFile(btn){
if(document.getElementById) {
tr = btn;
while (tr.tagName != 'TR') tr = tr.parentNode;
var idSuffix = Math.round(Math.random()*1000);
var newTr = tr.parentNode.insertBefore(tr.cloneNode(true),tr.nextSibling);
thisChilds = newTr.getElementsByTagName('td');
for (var i = 0; i < thisChilds.length; i++){
if (thisChilds.className == 'header') thisChilds.innerHTML = '';
if (thisChilds.className == 'files') thisChilds.innerHTML = '<input size="32" name="xtt[]" class="wideFile" type="file">';
}
checkForLast();
}
}
function xcheckForLast(){
btns = document.getElementsByName('xdrop');
for (i = 0; i < btns.length; i++){
btns.disabled = (btns.length == 1) ? true : false;
}
}
</script>
<?
// это в форму кидать
echo "
<table width=20% align=center>
<tr>
<td width=\"20%\"><input type=\"file\" size=\"32\" name=\"xtt[]\"></td>
<td nowrap=\"nowrap\"><input type=\"button\" name=\"xdrop\" value=\" − \" onClick=\"xdropFile(this);\">
<input type=\"button\" value=\" + \" onClick=\"xaddFile(this);\"></td>
</tr>
</table>";
//это обрабатывать так:
for($i=0;$i<count($_FILES['xtt']);$i++)
{
//файлик
echo $_FILES['xtt']['name'][$i];
}
?>
Загрузку я сделал, путь к картинке заношу в базу, в форме 9 импутов для загрузки. Обрабатываю изображения, делаю маленькие и большие фото. Но возникла следующая проблема, как бы отлично оно не работало, но фото не успевают загружаться так как нехватает 30 сек для обработки и загрузки фото, кто подскажет как теперь быть?
прикиньте, во что именно упираетесь по времени - в загрузку (ваш медленный upload или хостинг "притормаживает") или в "обработку" - где именно слабое звено
попробуйте увеличить max_execution_time (например, echo ini_set('max_execution_time','300').' '.ini_get('max_execution_time'); что говорит?)
если всё плохо - то только загрузка "по-одному", например, ajax-ом, правда для больших файлов все равно ведь будет падать? (:
Дело тут совсем не в нехватке времени, а я уверен что 100% в херовой обработке миниатюр, ведь как вы написали "я нашел в интернете и доделал под нужды", дальше я продолжу "этот говноскрипт".
В общем фишка в том, что ресайз изображений на gd - плохое занятие, оно потребляет ОООЧЕНЬ много памяти, на избражение 1000х1000 надо порядка 30 мегабайт памяти(так как если вам неизвестно но все обработки изображений происходят над BMP форматом "упаковки" данных, то есть жпег 300килобайтовый при конвертации в бмп чудесным образом превраайтеся в 30 метровую бмпшку), используйте imagick для ресайза картинок, imagick конвертирует по другому(видимо через темп файлы или в своей нераздлеляемой с пхп памятью, уверен что в темп файлах большие изображения, так как не было ограничений на размер конвертируемого файла у меня ни разу) и все будет работать.
ЗЫ: всем "советчикам по поводу max_time_limit" - ваш костыль не всегда актуален, это решение влоб из серии "решение методом перебора". знайте то, что время приема данных (post) не включено в time_limit ;)
bearman, век живи, век учись, спасибо, почитал про max_input_time (:
Ilekor, вот тут обсуждали вопрос о массовой загрузке изображений. Там приводили несколько ссылок на различные массовые загрузчики (например, этот я использовал в 2 проектах). Может что-нибудь понравится и пригодится.
Но сколько я не искал, так и не нашел flash-загрузчик, который мог бы изменять размер изображения на стороне клиента с помощью flash и отправлять уже уменьшенные копии изображений на сервер...