Forum Webscript.Ru
Программирование => Perl => Тема начата: Phoinix от 03 Ноября 2003, 09:56:06
-
Во время upload файла (картинки), файл записывается туда куда нужно, но в папке где расположен скрипт появляется файл "CGItempxxxxx" где xxxxx - какое-то число? при этом ошибок не выдает в логах, и картинка записывается не битая, а кам файл "CGItempxxxxx" является копией этой картинки...
Скрипт upload:
use CGI;
$query = new CGI;
$image = $query -> param(\'image\');
$tv[0] = $image; # определяем полное имя файла
$tv[0] =~s /.*((png)|(gif)|(jpg))$/$1/i; # определяем тип файла
$file = "h:/home/test/html/gallery".$tv[1].".".$tv[0]; # $tv[1] - имя файла определяемое отдельной функцией
open (IMG, ">$file"); binmode IMG; flock ($file, 2); print IMG while (<$image>); close (IMG); chmod 0744, $file;
Система - Win2K Pro SP3
Сервер - Apache 1.3.28
Интерпритатор - Perl 5.6.1.
Модули Perl - CGI 3.0
Не могу понять откуда этот глюк, но я проверял этот скрипт на другой машине с тем же программным обеспечением, но temp файлов не появлялось, может где-то настройки какие-то неправильны?
-
Это не глюк - временные файлы создаются в любом случае, либо в директории скрипта, либо во временной директории (смотреть CGI на предмет алгоритма создания временных файлов).
-
Chs
Это все понятно, но почему они не удаляются, вот в чем вопрос... их потихоньку собирается n-ное количество, а так как они размерами такие же как картинки, то, соответственно, будут забивать место на хосте...
-
Попробуй запретить запись в папку скрипта.
-
В unix\'е cron чистит temp\'ы
-
Raptus Melanholicus
Ммм... а интересно, как это сделать в Win2K?
-
Raptus Melanholicus:
Попробуй запретить запись в папку скрипта.
Ты хоть сам то понял что написал?
Phoinix если у тебя будет скриптна виндовом сервере жить - то либо пиши в скрипте что-бы он подчищал за собой либо в автозагрузку поместить скрипт очистки /tmp.
Если в *nix, то Wyclef тебе ответил.
-
NeoNox Chs Wyclef
Всем спасибо... проверил на линухе, темпов не остается, похоже что-то у меня с машиной все-таки...
-
Chs:
смотреть CGI на предмет алгоритма создания временных файлов
А у меня старенький Апач под виндой этим грешил (закачивал без модуля CGI). Причем создавались во временной папке файлы с именами 1.jpg, 2.jpg и т.д. И после отработки скрипта не удалялись :( Сменил Апач на более новый - все ништяк.
-
Mog.
Так вроде и apache последний, и модуль CGI, ну Perl не самый последний (но и не первый)... просто временные файлы только на моей машине остаются, на сервере и на других компах юзал, все, как говорится, ништяк...
-
Phoinix:
apache последний
Тут ты пожалуй загнул. Кстати, ты не думал над тем, почему столько версий уже вышло (ну хотя бы того же Апача), а вот табуретки все такие же, на четырех ногах. :)
-
Mog.
Подумал - понравилось, решил подумать ще раз...
и правда 29 версия вышла... просчелкал, однако...
Да фиг с ними с этими темпами, я же говорю, они почему-то только у меня на компе появляются, это не страшно, удалаются, со свистом...
-
Я вообще не о абсолютном количестве. Я про то, что они появляются, а значит в предыдущих находят нечто требующее доработки или чегото не находят вообще. Хотя это слегка и мимо темы.