2011-06-23 70 views
1

我有一個apache2運行服務器,與複雜的目錄結構很好地工作。在大多數目錄的末尾,我有一個perl文件('index.pl'),它處理所有GET命令(我需要動態的東西)。Apache2 - 處理HTTP PUT

現在,我希望index.pl也處理「PUT」命令,但是每當我試圖發送一個「PUT」命令,我得到405。如果我能DAV的PUT命令不執行Perl腳本,但而只是將文件放在目錄中。

現在,我知道這是不是爲PUT命令共同使用 - 事情是,我正在寫一個備份服務器,一個非常複雜的web服務,其處理PUT命令(因爲如此,我需要太) 。

謝謝!

在index.pl文件

回答

0

你需要做的:

$method = $ENV{'REQUEST_METHOD}; 
$data = ''; 
$buffer = ''; 
if ($method eq 'PUT') { 
    sysread(STDIN, $data, $length); 
    while(length($data) < $length) { 
     last unless sysread(STDIN, $buffer, 4096); 
     $data .= $buffer; 
    } 
    # You now have your PUT data in the $data variable. 
}