[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: загрузка нескольких файлов на сервер
Risyaalex
есть форма загрузки для 3х фото - они не обязательны для загрузки. то есть может не грузиться ни одна, может 1 или 2 или 3.
проблема в том,что изображения копируются только если загружаю все 3 фото, если загружаю 1 или 2 - изображение не копирутся...



<?php
include ('block/bd.php');
$path=GetCWD()."/files";
if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset ($title);}}
if (!isset($_FILES['UserFile2']['tmp_name'])) $_FILES['UserFile2']['name']='';
if (!isset($_FILES['UserFile3']['tmp_name'])) $_FILES['UserFile3']['name']='';
?>
<h2
align="center">добавить фото</h2>
<?php
if (isset ($title)){
if ($_FILES['UserFile']['tmp_name'] == '') { $name="nophoto.jpg";}
else {
$name=$_FILES['UserFile']['name'];
$right=substr($name,strpos($name,'.'));
$name="1".date('YdmHis').$right;
}
if ($_FILES['UserFile2']['tmp_name'] == '') { $name2="";}
else {
$name2=$_FILES['UserFile2']['name'];
$right2=substr($name2,strpos($name2,'.'));
$name2="2".date('YdmHis').$right2;
}
if ($_FILES['UserFile3']['tmp_name'] == '') { $name3="";}
else {
$name3=$_FILES['UserFile3']['name'];
$right3=substr($name3,strpos($name3,'.'));
$name3="3".date('YdmHis').$right3;
}
$result = mysql_query ("INSERT INTO paid (title,foto1,foto2,foto3) VALUES ('$title','$name','$name2','$name3')");
}
if(empty($_FILES['UserFile']['tmp_name'])) {
?>
<form
method=post enctype=multipart/form-data id="form1">

<p>
<label><b>
Введите текст</b><br>
<textarea
name='title' id='title' cols='40' rows='5'></textarea>
</label>
</p>
<p><b>
Выберите фото :</b></p>
<p
style="font-size:12px">(размером до 300 кб.)</p>
<input
type=file name='UserFile'><br />
<input
type=file name='UserFile2'>
<br />
<input
type=file name='UserFile3'>
<br>
<input
type=submit value=Добавить фото>
</form>
<?php

}
elseif(!is_uploaded_file($_FILES['UserFile']['tmp_name']) || !is_uploaded_file($_FILES['UserFile2']['tmp_name']) || !is_uploaded_file($_FILES['UserFile3']['tmp_name'])) die("<b><font color=red>Не удалось загрузить изображение</font></b>");
else {
if(@!copy($_FILES['UserFile']['tmp_name'],$path.chr(47).$name) || @!copy($_FILES['UserFile2']['tmp_name'],$path.chr(47).$name2) || @!copy($_FILES['UserFile3']['tmp_name'],$path.chr(47).$name3)) die("<b><font color=red>Изображение не было скопировано</font></b>");
else echo "<p>Фото успешно добавлено</p> <p><a href='upload1.php'>Вернуться</a></p>";
}
?>


проблема я так понимаю где то

elseif(!is_uploaded_file($_FILES['UserFile']['tmp_name']) || !is_uploaded_file($_FILES['UserFile2']['tmp_name']) || !is_uploaded_file($_FILES['UserFile3']['tmp_name'])) die("<b><font color=red>Не удалось загрузить изображение</font></b>"); 
else {
if(@!copy($_FILES['UserFile']['tmp_name'],$path.chr(47).$name) || @!copy($_FILES['UserFile2']['tmp_name'],$path.chr(47).$name2) || @!copy($_FILES['UserFile3']['tmp_name'],$path.chr(47).$name3)) die("<b><font color=red>Изображение не было скопировано</font></b>");


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





Спустя 1 день, 20 часов, 16 минут, 22 секунды (11.01.2011 - 11:44) vagrand написал(а):
Назови поля файлов следующим образом:


<input type=file name='UserFile[]'><br />
<input
type=file name='UserFile[]'>
<input
type=file name='UserFile[]'>


И работай с ними как с массивом в PHP

Спустя 1 час, 22 минуты, 1 секунда (11.01.2011 - 13:06) Risyaalex написал(а):
спасибо, буду пробовать....

Спустя 31 минута, 45 секунд (11.01.2011 - 13:38) linker написал(а):
Или в цикле
foreach($_FILES as $UploadFile)
{
...
}

Спустя 7 минут, 47 секунд (11.01.2011 - 13:45) ИНСИ написал(а):
или использовать такую конструкцию:
while(list($uploadFile) = each($_FILES)) {
echo basename($_FILES[$uploadFile]['name']);
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.