Forum Webscript.Ru

Программирование => Perl => Тема начата: Mers от 09 Ноября 2003, 13:30:04

Название: Как создавать в Пёрле файлы. Как записывать в них знаю, а как их создавать нет!
Отправлено: Mers от 09 Ноября 2003, 13:30:04
Подскажите пожайлуста как создавать файлы в Пёрл через веб-форму!
Название: Как создавать в Пёрле файлы. Как записывать в них знаю, а как их создавать нет!
Отправлено: Chs от 09 Ноября 2003, 20:11:22
Ээээ....ну а веб-форма-то причем?
perldoc -f open
Название: Как создавать в Пёрле файлы. Как записывать в них знаю, а как их создавать нет!
Отправлено: Crey от 25 Ноября 2003, 15:35:51
Почему при попытке записи в файл
print file $temp
(под Linux) дает ошибку доступа, хотя ведь я под ROOT-ом?
Название: Как создавать в Пёрле файлы. Как записывать в них знаю, а как их создавать нет!
Отправлено: ondr от 25 Ноября 2003, 15:39:14
Опиши более подробно, что ты делаешь.
Покажи скрипт.
Не забудь рассказать о том, как ты его запускаешь.
И ошибку сюда выложи.
Название: Как создавать в Пёрле файлы. Как записывать в них знаю, а как их создавать нет!
Отправлено: Crey от 25 Ноября 2003, 16:02:33
Вот код

$file_local=">book/b_".$row[0].".bin";
open(file_temp,$file_local);
binmode file_temp;
print file_temp $FILES{"f1"};
close(file_temp);
$dbh->finish;
&disconnect;
$form_mode="book_main";
&to_mode;


Вызываю как CGI-скрипт
Название: Как создавать в Пёрле файлы. Как записывать в них знаю, а как их создавать нет!
Отправлено: ondr от 25 Ноября 2003, 16:13:50
Неважно, что ты под рутом если запускаешь под cgi. Твой скрипт работает с полномочиями апачи и права на директории (файлы) должны быть соответствующими.
Название: Как создавать в Пёрле файлы. Как записывать в них знаю, а как их создавать нет!
Отправлено: NeoNox от 25 Ноября 2003, 16:17:17
Во первых дескриптора принято писать большими буквами.
Во вторых, ты бы проверил что у тебя возвращает $row[0] $FILES{"f1"}
В третих пиши путь к файлу с корня.
$file_local="/home/user/admin/www/book/b_".$row[0].".bin";
или относительно скрипта
$file_local="./book/b_".$row[0].".bin";