【问题标题】:Create file after INPUT type="submit" value="Go"在 INPUT type="submit" value="Go" 之后创建文件
【发布时间】:2014-01-09 00:47:11
【问题描述】:

我有 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 中。但是没有创建文件。有什么问题? 当我从命令行运行我的脚本时,文件打开工作。

【问题讨论】:

    标签: html perl cgi


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,伙计。有用!它在 sudo chmod 777 foldername 之后工作
    猜你喜欢
    • 2013-09-07
    • 2012-09-28
    • 1970-01-01
    • 2015-11-14
    • 2021-11-23
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多