|
|
|
| Тут беда такая, нада загрузить файл на странице 1 (при загрузке переход на страницу 2). На странице 2 пользователь вводить дополнительные данные (к примеру соглашается на оплату и переход на страницу 3) и только на 3 странице переданный файл сохранять на сервер.
Я пытался сделать так, но код ошибочный (на ум ничего не приходит).
страница1
<form enctype='multipart/form-data' action='2.php' method=post>
<input type=file name=icon size=30><br>
<input type=submit value='next'>
</form>
|
страница 2
<form enctype='multipart/form-data' action='3.php' method=post>
<input type=hidden name=file value=<? echo $_FILES['icon']['tmp_name']; ?>>
<input type=submit value='next'>
</form>
|
страница 3
<?
echo $_POST['file'];
?>
p.s. код неверный (може мне как-то подругому сделать?)
|
| |
|
|
|
|
|
|
|
для: alik
(11.05.2006 в 09:28)
| | Не выйдет. Файл придется сохранять уже на странице 2, поскольку сразу после завершения исполнения скрипта страницы 2 временный файл с данными загруженного будет удален.
Файл придется сохранять, информацию об его размещении тоже сохранять, причем не только для страницы 3 (она ведь может и не быть затребована), но и для планированного по cron сборщика мусора, который будет подбирать такие файлы и удалять их, если процесс до логического завершения не дошел. | |
|
|
|
|
|
|
|
для: Trianon
(11.05.2006 в 10:16)
| | так все таки... как мне передать файл на страницу 3. А можна его в буфер запихуть? задача такая что файл нужно сохранить на сайте если была загруженна страница 3. | |
|
|
|
|
|
|
|
для: Trianon
(11.05.2006 в 10:16)
| | как мне правильно поступить? подскажите пожалуйста. желательно с примером. | |
|
|
|
|
|
|
|
для: alik
(11.05.2006 в 10:31)
| | Создайте свою временную директорию и сохраняйте файл туда, а в конце уже сохраняйте файл в директорию назначения. Только придётся время от времени чистить директорию от старых файлов. | |
|
|
|
|
|
|
|
для: cheops
(11.05.2006 в 10:38)
| | хм... плиз подскажите как удалить все файлы в директории :)) ведь unlink удаляет 1 файл | |
|
|
|
|
|
|
|
для: alik
(11.05.2006 в 10:55)
| | Если на линуксе, то добавь в cron строку
30 * * * * user /dir/dir/remove_temp.sh
В свою очередь remove_temp.sh содержит
#!/bin/bash
$time=+1
find /dir/dir/temp_dir/* -mtime $time -exec rm -rf {} \;
|
Этот скрипт будет запускаться каждые 30 минут и удалять файлы, которым больше одного дня. Можно вместо -mtime использовать -mmin, тогда $time замени на 60 (удаление файлов, которым больше часа, например).
Под винду не знаю, можно попробовать FireDaemon или что-нибудь из этой оперы. | |
|
|
|
|
|
|
|
для: mtxd
(11.05.2006 в 11:32)
| | не... Меня интересует при помощи php очистить директорию не зависимо от ОС. как? | |
|
|
|
|
|
|
|
для: alik
(11.05.2006 в 11:44)
| |
<?
for($res = opendir($path); ($name = readdir($res)) !== false ;)
if(is_file($path.'/'.$name) && это_ненужный_файл($name))
unlink($path.'/'.$name);
closedir($res);
?>
|
| |
|
|
|
|
|
|
|
для: alik
(11.05.2006 в 11:44)
| | $dirname=$_SERVER["DOCUMENT_ROOT"] . "/temp/";
if($handle=opendir($dirname)){
while(false !== ($file=readdir($handle))){
if($file != "." && $file != ".."){
unlink($dirname . $file);
}
}
} | |
|
|
|