簡體   English   中英

perl Apache2 ::同時使用param()和upload()方法請求錯誤

[英]perl Apache2::Request errors using param() and upload() methods simultaneously

我在mod_perl環境中編碼並使用Apache2 :: Request模塊獲取發布的數據。 這工作正常,除了我還使用Apache2 :: Request對象上傳文件/獲取文件的文件句柄。 如果單獨使用這些方法,則沒有問題。 但是,如果我在同一子例程中使用它們,我會在Apache日志文件中出現此錯誤:

[notice] child pid 27383 exit signal Segmentation fault (11)

這是我的代碼:

my $r = shift;
use Apache2::Request;
use Apache2::Upload;
my $req = Apache2::Request->new($r, POST_MAX => 10 * 1024 * 1024,DISABLE_UPLOADS => 0);
my $img_url = $req->param('url');

my $upload = $req->upload('files[]');
my $filename = $upload->filename;
my $upload_filehandle = $upload->fh;
my $file_size = $upload->size;

包含Apache2 :: Upload,因為Apache2 :: Request使用它。 就像我說的,如果我注釋掉以“my $ img_url ..”開頭的行或上傳部分,它就可以了。 但是,如果它們都存在於代碼中,則會在apache日志文件中出現502 Proxy Error和該錯誤。

提前致謝!

我很欣賞這是一個老問題,所以我的回復有點晚了,但是如果有其他人偶然發現這個帖子,我確實有一個解決方案。

問題是New()的mod_perl錯誤:

my $req = Apache2::Request->New($r);

(在你的情況下,你在那里定義了一些其他的東西,但它看起來是我遇到的相同的段錯誤和零星的症狀)。

當$ r未定義時,Apache2 ::請求段錯誤,但有時即使你將@_轉換為$ r(如你所做的那樣),它似乎也會出現段錯誤。 我無法解釋為什么會發生這種情況,但我發現了一個簡單的改變,阻止了這個問題的發生:

my $req = Apache2::Request->New(Apache2::RequestUtil->request);

因此,您的代碼可能會如下所示:

my $req = Apache2::Request->new(Apache2::RequestUtil->request,
                                POST_MAX => 10 * 1024 * 1024,
                                DISABLE_UPLOADS => 0);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM