Автор Тема: Загрузка на сервер 2х и более файлов  (Прочитано 3490 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн RelaX

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 0
    • Просмотр профиля
Нашел в интернете код загрузки файлов на сервер:
<?php 
/* Куда сохраняем файлы */ 
$store_dir=\'./\'; 

/* Если нам не передали файл, то покажем форму */ 
if (!$user_file) { 
?> 
<form action="<?php print $PHP_SELF?>" method="post" enctype="multipart/form-data"> 
<input type="file" name="user_file"><input type="submit"> 
</form> 
<?php 

/* Если передали файл */ 
else { 
/* Проверим все ли правильно */ 
if (is_uploaded_file($user_file)) { 
/* Переместим файл */ 
move_uploaded_file($user_file, $store_dir.$user_file_name); 
/* Скажем об этом */ 
print "Спасибо за файл 
\\n"; 

/* Если не правильно */ 
else { 
print "Не корректные данные 
 \\n"; 


?>


при загрузке одного файла - все работает. Доработал код для загрузки двух файлов - появились проблемы.
Вот код доработанного файла:

форма:

Файл 1

Файл 2



сам файл 2.php

<?

$store_dir=\'./\'; 

if (is_uploaded_file($user_file)) { 

move_uploaded_file($user_file, $store_dir.$user_file_name); 

print "Спасибо за файл 1
\\n"; 


if (is_uploaded_file($user_file2)) { 

move_uploaded_file($user_file2, $store_dir.$user_file_name2); 

print "Спасибо за файл 2
\\n"; 


else { 
print "Не корректные данные 
 \\n"; 


?>


После загрузки появляется ошибка:
Warning: Unable to create \'./\': Is a directory in /home/web/upload/1.php on line 16

Warning: Unable to move \'/tmp/phpy30guO\' to \'./\' in /home/web/upload/1.php on line 16

первый фал нормально загружается, а второй не загружается. Что надо добавить/изменить в скрипте?

Оффлайн voodoo

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 25
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vochat.com/
Загрузка на сервер 2х и более файлов
« Ответ #1 : 26 Ноября 2002, 11:31:35 »
$user_file2_name
WBR и все такое,
Voodoo http://vochat.com/

Оффлайн alex007

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 835
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.russians-in-london.co.uk/
Загрузка на сервер 2х и более файлов
« Ответ #2 : 10 Апреля 2004, 00:53:26 »
Что бы не повторяться по темен задам я свой вопрос здесь, да и получше пример чем RelaX.

Существует форма c 10 файлами для загрузки:
<form method="post" enctype="multipart/form-data" action="add.php"><table border="0" class="text2">
	
<
tr>
	
	
<
td><b>Image:</b></td>
	
	
<
td><input type="file" name="image_file[]"></td>
	
</
tr>
	
<
tr>
	
	
<
td><b>Image:</b></td>
	
	
<
td><input type="file" name="image_file[]"></td>
	
</
tr>
	
<
tr>
	
	
<
td><b>Image:</b></td>
	
	
<
td><input type="file" name="image_file[]"></td>
	
</
tr>
	
<
tr>
	
	
<
td><b>Image:</b></td>
	
	
<
td><input type="file" name="image_file[]"></td>
	
</
tr>
	
<
tr>
	
	
<
td><b>Image:</b></td>
	
	
<
td><input type="file" name="image_file[]"></td>
	
</
tr>
	
<
tr>
	
	
<
td><b>Image:</b></td>
	
	
<
td><input type="file" name="image_file[]"></td>
	
</
tr>
	
<
tr>
	
	
<
td><b>Image:</b></td>
	
	
<
td><input type="file" name="image_file[]"></td>
	
</
tr>
	
<
tr>
	
	
<
td><b>Image:</b></td>
	
	
<
td><input type="file" name="image_file[]"></td>
	
</
tr>
	
<
tr>
	
	
<
td><b>Image:</b></td>
	
	
<
td><input type="file" name="image_file[]"></td>
	
</
tr>
	
<
tr>
	
	
<
td><b>Image:</b></td>
	
	
<
td><input type="file" name="image_file[]"></td>
	
</
tr>
	

	
<
tr>
	
	
<
td></td>
	
	
<
td><input type="submit" value="Upload"
<
input type="button" value="Cancel" onClick="history.go(-1)"></td>
	
</
tr>
	

</
table></form>


Есть также обрабатывающий php код:

$images_dir 
"image/";
$server_image_dirlocation $serverroot.$images_dir;
	
	
	
	
	
	
	
	
	

for (
$img_files=0$img_files count($image_file); $img_files++) {

if (
$_FILES[\'image_file\'][\'tmp_name\'][$img_files] !="") copy($_FILES[\'image_file\'][\'tmp_name\'][$img_files], $server_image_dirlocation . $_FILES[\'image_file\'][\'name\'][$img_files]);
	
	
	
	

$image_loc = $server_image_dirlocation.$_FILES[\'image_file\'][\'name\'][$img_files];
	

$file_name = $_FILES[\'image_file\'][\'name\'][$img_files];
$image_file_type = $_FILES[\'image_file\'][\'type\'][$img_files];
$filesize =  (($_FILES[\'image_file\'][\'size\'][$img_files])/1024);
	
	
	

//узнаю размер фоток для дальнейшей операции
$size=getimagesize("$image_loc");
$new_width=$size[0];
$new_hieght=$size[1];

//далее делаю своё дело
	
	

}


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

Как исправить так что бы не выскакивало не чего при загрузке меньше 10 файлов, просто облазил много чего так и не нашел решения.
Русские-в-Лондоне. Как они там? Интересно. Инфо (FAQ), Форум и Магазин

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Загрузка на сервер 2х и более файлов
« Ответ #3 : 10 Апреля 2004, 08:23:54 »
гы.
это ж что надо было облазить, чтобы не найти, что
во-первых, что массив _FILES надо перебирать через foreach. Ну, или хотя бы перебирать фором не жестко забитое число, а размер массива.
а во-вторых, после if ($_FILES[\'image_file\'][\'tmp_name\'][$img_files] !="")  поставить фигурную скобку и дальнейшие действия производить только если имя файла есть.
А так получается, что если файла нету, то мы его не копируем, но все остальные действия производим :-)


Интересно, а закрыть фигурную скобку товарищ сам догадается? %)
« Последнее редактирование: 10 Апреля 2004, 08:29:29 от RomikChef »

Оффлайн alex007

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 835
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.russians-in-london.co.uk/
Загрузка на сервер 2х и более файлов
« Ответ #4 : 10 Апреля 2004, 15:56:24 »
RomikChef
спасибо.

Цитировать
Интересно, а закрыть фигурную скобку товарищ сам догадается?

Куды я денусь...

P.S. Заметил два последних предложения добавил -:)
Русские-в-Лондоне. Как они там? Интересно. Инфо (FAQ), Форум и Магазин

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Загрузка на сервер 2х и более файлов
« Ответ #5 : 12 Апреля 2004, 11:19:55 »
Цитировать
Как исправить так что бы не выскакивало не чего при загрузке меньше 10 файлов, просто облазил много чего так и не нашел решения.

if(is_uploaded_file()){...}
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн alex007

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 835
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.russians-in-london.co.uk/
Загрузка на сервер 2х и более файлов
« Ответ #6 : 12 Апреля 2004, 15:03:15 »
AlieN
да уже работает без проблем, можно и таким образом:

if ($_FILES[\'image_file\'][\'size\']){
//делаем действие
}
Русские-в-Лондоне. Как они там? Интересно. Инфо (FAQ), Форум и Магазин

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28