Xwab
Форумыnavigate_nextПрограммирование на PHP

Загрузка нескольких файлов.
Сообщения
AntoXa

Вот чо то я давно ничего не делал в плане работы с файлами, а вот сегодня встала проблема с загрузкой файлов.
Вообщем мне нужно сделать следующее:
1. Загрузка нескольких файлов по типу - загрузил один файл, появилось 2 поле.
2. НУ тут уже и сам смогу, в переменную занести информацию:
$text='Ссылки для скачивания:
Загруженные файлы
';
---------
Чур не пинать, уже сам себя успел попинать за это

05 Янв 2012, 7:53
web-master

AntoXa, а где же тут несколько файлов? Несколько файлов это когда ты сразу можешь выбрать например штук 10 и загрузить.
А так как ты хочешь: после загрузки одного снова кидай на форму загрузки, и все!

05 Янв 2012, 8:25
AntoXa

web-master, ну вот по ща в пэинте нарисую что я хочу)
добавлено спустя 3 минуты:
Ну или как тут (на форуме), ?)

05 Янв 2012, 8:32
web-master

AntoXa, ну тут в сессию записываешь сколько файлов пользователь уже загрузил, и в зависимости от нее показываешь количество форм

05 Янв 2012, 8:53
AntoXa

О! Спс)

05 Янв 2012, 9:03
SL_NeKrOmAnT

AntoXa, Чёт я не понял твоего рисунка =(
Допустим ты загрузил файл, тебе открывается эта же страница , но уже с 2 формами?

05 Янв 2012, 9:09
AntoXa

Можно и так, а лучше как на этом форуме)

05 Янв 2012, 9:10
SL_NeKrOmAnT

AntoXa, ну web-master наверное самый оптимальный вариант сказал.
Лучше записывй допустим через ; названия файлов, чтобы как тут можно было вывести над формой загрузки ссылку на файл.

05 Янв 2012, 9:20
AntoXa

С кодом не помогете ;X

05 Янв 2012, 9:36
web-master

помогете
вот у меня на сервисе была форма загрузки картинок, форма будет появляться пока не будет гагружено 3 картинки, как под себя переделать думаю поймешь
По коду могу объяснить в аське, лишнее вырезал
[code=php]
<?php
require_once "../system/class.php";
$DB=new DB();
$DB->db_connect('localhost', DB_USER, DB_PASSWORD, DB_DB, TRUE);

$MAIN=new MAIN();
$MAIN->sess_start();

if($MAIN->login()==FALSE){header('Location: '.ROOT.'index.php?'); exit;}


if($_GET['del']==1)
{
unlink("../image_design/".$_SESSION['image_1']);
unlink("../image_design/view_".$_SESSION['image_1']);
unset($_SESSION['image_1']);
}
if($_GET['del']==2)
{
unlink("../image_design/".$_SESSION['image_2']);
unlink("../image_design/view_".$_SESSION['image_2']);
unset($_SESSION['image_2']);
}
if($_GET['del']==3)
{
unlink("../image_design/".$_SESSION['image_3']);
unlink("../image_design/view_".$_SESSION['image_3']);
unset($_SESSION['image_3']);
}

if($_SERVER['REQUEST_METHOD']=='POST')
{
$err=array();
if($_POST['load'])
{
if(!isset($_SESSION['image_1']) || !isset($_SESSION['image_2']) || !isset($_SESSION['image_3']))
{
$valid_types=array("gif","jpg", "png", "jpeg", "GIF","JPG","PNG","JPEG");
if(is_uploaded_file($_FILES['images']['tmp_name']))
{
if($_FILES['images']['size']<300*1*1024)
{
// узнаем расширение фотографии
$filename=$_FILES['images']['tmp_name'];
$ext=substr($_FILES['images']['name'],1 + strrpos($_FILES['images']['name'], "."));
// проверяем расширение
if(!in_array($ext, $valid_types))
{
$err[]='Формат изображения не поддерживается';
}
else
{
// генерируем уникальный id
$unid=uniid();

// копируем загруженную фотографию во временную паку
copy($filename, '../temp/'.$unid.'.'.$ext);
// проверяем скопирована ли и существует фотография
if(file_exists('../temp/'.$unid.'.'.$ext))
{
if(!isset($_SESSION['image_1']))
{
$_SESSION['image_1']=$unid.'.'.$ext;
}
elseif(!isset($_SESSION['image_2']))
{
$_SESSION['image_2']=$unid.'.'.$ext;
}
elseif(!isset($_SESSION['image_3']))
{
$_SESSION['image_3']=$unid.'.'.$ext;
}
// делаем оригиналы
imageresize("../image_design/".$unid.".".$ext, "../temp/".$unid.".".$ext,400,400,90, $ext);
// делаем превью
imageresize("../image_design/view_".$unid.".".$ext, "../temp/".$unid.".".$ext,40,40,90, $ext);

//$size=filesize("../image_design/".$unid.".".$ext);

unlink("../temp/".$unid.".".$ext);
}
else
{
$err[]='Произошла ошибка при загрузке, попробуйте снова';
}
}
}
else
{
$err[]='Объем изображения должен быть не более 300 Kb';
}
}
else
{
$err[]='Изображение не загружено, попробуйте снова';
}
}
else
{
$err[]='Максимально можно 3 изображения';
}
}

}
$BODY=new BODY();
$BODY->headers('Продаем Тут - новое объявление', '', '', '', '');
if(count($err)!==0)
{
echo '<div class="discrict_error">';
foreach($err as $error)
{
echo $error.'<br>';
}
echo '</div>';
}

echo '<div class="container">';
echo '<form action="?" method="post" enctype="multipart/form-data">';

if(!isset($_SESSION['image_1']) || !isset($_SESSION['image_2']) || !isset($_SESSION['image_3']))
{
echo 'Примеры';
echo '<div class="discrict">Вы можете загрузить до 3 скриншотов. Форматы GIF, JPG, PNG, JPEG. До 300 Kb каждый.</div>
<input name="images" type="file" />&nbsp;<input name="load" type="submit" value="Загрузить" /><br />';
}
if(isset($_SESSION['image_1']))
{
echo '<img src="'.ROOT.'image_design/view_'.$_SESSION['image_1'].'"/><a href="?del=1">Удалить первый</a><br />';
}
if(isset($_SESSION['image_2']))
{
echo '<img src="'.ROOT.'image_design/view_'.$_SESSION['image_2'].'"/><a href="?del=2">Удалить второй</a><br />';
}
if(isset($_SESSION['image_3']))
{
echo '<img src="'.ROOT.'image_design/view_'.$_SESSION['image_3'].'"/><a href="?del=3">Удалить третий</a><br />';
}
echo '<hr/>
<input name="ok" type="submit" value="Добавить" />
</form>';
echo '</div>';

$BODY->bottom();
?>
[/code]

бл.. как этот тег code писать

05 Янв 2012, 10:47
Ответить на тему