1
我有一個perl程序,它用二進制數據寫入應用程序/ zip文檔。我可以在我的CGI腳本中執行以下代碼。PERL CGI:同時使用二進制和文本模式的文件句柄
print $cgi->header(-type=>"application/x-zip; name=\"$filename.zip\"", -content_disposition=> "attachment; filename=\"$filename.zip\""). "\n";
print $result
其中$result
是二進制數據。這一操作將輸出,提示用戶頁面下載zip
我想,雖然做的是傳遞整個「網頁」的形式參數,所以我這樣做:
open $resultfh, ">", \$output_buffer or die "could not open buffer";
print $resultfh $cgi->header(-type=>"application/x-zip; name=\"$filename.zip\"", -content_disposition=> "attachment; filename=\"$filename.zip\""). "\n";
print $resultfh $result
,然後我可以通過$output_buffer
作爲變量。
問題是,這不起作用,東西似乎得到通過,因爲我提示下載zipfile,但zipfile已損壞,我得到期望的字節和實際字節之間的不匹配或一些東西。
我認爲這與二進制模式不是該輸出緩衝區做的,但我無法讀取二進制模式的內容頭,這樣我就可以有一個文件處理爲部分文字和部分二進制?
如果不是,我有什麼選擇?
編輯:這個問題實際上似乎發生在我將二進制數據作爲cgi形式參數傳遞時。任何人都知道問題可能是什麼?也許尺寸限制?
謝謝!不幸的是沒有解決我的問題。看來問題在於傳遞二進制數據作爲參數。 – Atey1 2011-06-04 12:17:13