PDA

Просмотр полной версии : Мульти-загрузчик фото


geforse
08.08.2009, 18:04
Прошу помощи )

Помогите найти мульти загрузчик изображений на сервер (технология впринципе не важна, главное результат)

Гугл выдал один а ajax, но что-то он мне не понравился)

кто чем пользуется на своих сайтах ?

geforse
08.08.2009, 18:45
спасибо попробую

Форма с кнопкой JS, при нажатии добавляет поле input tupe="file"

я JS вобще не знаю) этот шаг можно в виде кода ?)

Kaimi
08.08.2009, 18:56
Вроде того

<script>
function add()
{
var form = document.getElementById('list');
form.innerHTML += '<input type="file"><br>';
}
</script>

<form method="post">
<div id="list">
<input type="file"><br>
</div>
<input type="button" value="Add" onclick="javascript:add()">
<input type="submit" value="OK">
</form>

FireFenix
08.08.2009, 19:48
<script language='javascript'>

function Add_File(a,b)
{
var files = document.getElementById('files');
var file = document.createElement('input');
var line = document.createElement('br');

file.setAttribute('type', 'file');
file.setAttribute('name', 'file[]');

files.appendChild(line);
files.appendChild(file);
}

</script>

<form enctype="multipart/form-data" name="upload" method="post" action="?">
Files: <a href="javascript:Add_File();">Добавить файл</a>
<br>
<br>
<div id="files">
<input type="file" name="file[]">
</div>
<br>
<input type="submit" value="Отправить">
</form>

<?php

if (isset($_FILES['file']))
{
print_r($_FILES);
}

?>

В итоге к нам приходит в массиве $_FILE['file'] что-то типа :

Array
(
[file] => Array
(
[name] => Array
(
[0] => File1.xls
[1] => File2.CTF
[2] => File3.txt
)

[type] => Array
(
[0] => application/vnd.ms-excel
[1] => application/octet-stream
[2] => text/plain
)

[tmp_name] => Array
(
[0] => C:\Temp\php\php7027.tmp
[1] => C:\Temp\php\php7047.tmp
[2] => C:\Temp\php\php7113.tmp
)

[error] => Array
(
[0] => 0
[1] => 0
[2] => 0
)

[size] => Array
(
[0] => 388608
[1] => 5613444
[2] => 221
)

)

)

После проверки на size > 0 и error == 0 и расширения или типа файла - делаем move_upload_file и присваиваем имя

geforse
09.08.2009, 11:09
всем спасибо :)

Написал "рабочий" код, который загружает почему-то не больше 5 картинок за раз


$files_count = sizeof($_FILES['file']['name']);

for ($i = 0; $i < $files_count; $i++) {...}


Этот код загружает только 5 картинок :(

Наврятли ведь массив $_FILES['file']['name'] ограничен пятью "слотами" или я не прав ?

geforse
09.08.2009, 11:31
нет, точно не из-за этого
; Maximum allowed size for uploaded files.
upload_max_filesize = 100M

geforse
09.08.2009, 11:57
может кому-то поможет)

; Maximum allowed size for uploaded files.
upload_max_filesize = 99M


; Maximum size of POST data that PHP will accept.
post_max_size = 100M

всё заработало :)

bendep
15.08.2009, 04:57
Еще можно JQ применить получается довольно интересная штука.

Naydav
15.08.2009, 09:19
Прошу помощи )

Помогите найти мульти загрузчик изображений на сервер (технология впринципе не важна, главное результат)

Гугл выдал один а ajax, но что-то он мне не понравился)

кто чем пользуется на своих сайтах ?

Очень неплох
demo.swfupload.org/v220/multiinstancedemo/index.php

Симпатичный, удобный простой в установке
Вот только, для 10 версии флеш, несовместим с 9
Использую очень долго, не жулуюсь, правдв иногда проглючивает старт загрузки(нужно несколько раз нажать кнопку загрузить), но редко