2009-07-12 39 views
0

在PHP中,我有以下的代碼獲得通過CGI提交了一份文件:如何將PHP上傳文件腳本轉換爲Perl?

move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile) 

該文件被髮送的

Content-Disposition: form-data; name="userfile"; filename="filename" 
Content-Type: application/octet-stream 

文件被上傳類型PNG的。

如何訪問$ _FILES通過perl獲取的數據?

我可以用CGI.pm與

$query->upload("filename"); 

但我怎麼得到那就是在標題中的「內容處置」部分的數據?

回答

2

引述doc

當一個文件被上傳的瀏覽器通常在頭的格式以及一些信息發送與它一起。該信息通常包含MIME內容類型。未來的瀏覽器也可能會發送其他信息(如修改日期和大小)。要檢索這些信息,請調用uploadInfo()。它返回一個包含所有文檔標題的散列的引用。

$filename = param('uploaded_file'); 
    $type = uploadInfo($filename)->{'Content-Type'}; 
    unless ($type eq 'text/html') { 
     die "HTML FILES ONLY!"; 
    } 

雖然參數()應該返回的文件名太(),也可作爲文件句柄,但是這不建議使用和上傳(應該用於該代替)。

相關問題