我有一個perl CGI腳本,可以將PC上的文件上傳到Linux服務器。Perl HTML文件上傳問題。文件大小爲零
它的工作原理與我在我自己的HTML表單中編寫對CGI的調用然後執行時完全一樣,但是當我將相同的調用放入現有的應用程序中時,該文件在服務器上創建,但沒有獲得數據,它的大小爲零。
我比較了環境變量(那些我可以從%ENV
中提取的),並且沒有看起來像是一個原因。實際上,我嘗試在我自己的HTML腳本中更改幾個ENV,以改變現有應用程序正在使用的值,但這並未顯示出問題。
日誌沒有給我提供線索,上傳操作認爲它是成功的。 兩個測試的用戶都是相同的。如果權限是一個問題,那麼該文件甚至不會在服務器上創建。
IE中的結果與Chrome中的結果相同(從我自己的HTML腳本開始,而不是在應用程序中)。
我應該看什麼具體的設置,比較?
這是上傳代碼:
if (open(UPLOADFILE, ">$upload_dir/$fname")) {
binmode UPLOADFILE;
while (<$from_fh>) {
print UPLOADFILE;
}
close UPLOADFILE;
$out_msg = "Done with Upload: upload_dir=$upload_dir fname=$fname";
}
else {
$out_msg = "ERROR opening for upload: upload_dir=$upload_dir filename=$filename";
}
我沒有驗證
- 它不進入while循環,從應用程序中運行時。
- 它從我自己的HTML腳本中調用時會進入while循環。
$from_fh
的值對於兩次運行都是相同的。 下面的塊中使用的所有值在兩次運行中都完全相同。
你從哪裏得到'$ from_fh'?它讓我擔心你說它的價值在兩種情況下都是一樣的,因爲它應該是不同的,並且會像GLOB(0x90c06c)' – Borodin 2013-04-05 01:15:20
那麼你在Windows PC上運行Web瀏覽器,並且想要上傳該PC上的文件到運行Web服務器的Linux系統? – Borodin 2013-04-05 01:17:41