在INPUT类型=“submit”value =“Go”之后创建文件

时间:2013-12-20 07:58:48

标签: html perl cgi

我有perl代码,从数据库中获取一些日期并将其打印到文件中。

------------------------
$select_month = $FORM{month};
------------------
print qq~<form method="post">
<select name="month">
<option value='01'>JAN</option>
-------
<option value='12'Dec'>DEC</option>
</select>
<INPUT type="submit" value="Go">
</form>
~;

print $select_month;
my $file_name_dates = "0N3_CUS_".$select_month."csv";
open (my $FH, "+>", $file_name_dates);

my $dbh = &connect_oracle;

my $Select = $dbh->prepare($sql_1);
$Select->execute($select_month,$select_year,$select_month,$select_year);

事情是那个

 print $select_month; 

有效,它会打印一个月到我的HTML。但是文件没有创建。有什么问题? 从命令行运行脚本时,文件打开工作。

1 个答案:

答案 0 :(得分:1)

脚本的当前工作目录可能与您从Web服务器运行时的预期不同。尝试将文件名更改为完整路径而不是相对路径。例如:

my $base_path = "/path/to/files/";
my $file_name_dates = $base_path . "0N3_CUS_".$select_month."csv";

即使完整路径名是正确的,您的用户ID也可能是剥夺权利的,例如nobody。如果使用完整路径不起作用,请指向任何用户可以写入的目录,并且任何用户都可以访问以确保用户ID不是问题。