2013-12-20 36 views
1

我有Perl代碼,從數據庫獲取一些日期並將其打印到文件。INPUT type =「submit」value =「Go」後創建文件

------------------------ 
$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

腳本的當前工作目錄可能與您在從網絡服務器運行時的預期不同。嘗試將您的文件名更改爲完整路徑而不是相對路徑。例如:

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

即使完整路徑是正確的,你的用戶標識可能被一些非特權,如nobody。如果使用完整路徑不起作用,則指向任何用戶都可以寫入的目錄,並且任何用戶都可以訪問以確保userid不是問題。

+0

謝謝,夥計。有用!它在sudo chmod 777文件夾名稱後工作 –

相關問題