[英]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.