phpWord下載出錯,狀態響應爲 net::ERR_INVALID_RESPONSE(500)

錯誤出現

在對PHPWord生成的.docx文件在對其進行下載的時候出現瞭如圖錯誤:

在這裏插入圖片描述
剛開始對這個問題一頭霧水,突然出現,有的電腦能下載,有的不能;
還以爲是PHP版本的問題;
查看源碼:

                // 設置自動進行下載
                header("Content-type:application/vnd.ms-word");
                header("Content-Disposition:attachment;filename=" . $fileName . ".docx");
                header('Cache-Control:max-age=0');
                //把phpword的內容輸出到php輸出流裏
                $objWrite->save('php://output');
                //保存到指定目錄中
                $objWrite->save($path.$fileName.".docx");
                exit();

我在對其輸出時,還把文件存入(上傳到)了一個固定的路徑$path下;
apache中查到了請求日誌(access.log
::1 - - [01/Oct/2018:19:29:44 +0800] "GET /sport_meeting/public/index/produce_controller/downloadmanual.html HTTP/1.1" 500 61400 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Safari/537.36"
請求的返回的狀態碼爲500

500:服務器內部錯誤 服務器遇到了一個未曾預料的狀況,導致了它無法完成對請求的處理。一般來說,這個問題都會在服務器端的源代碼出現錯誤時出現。

以爲是版本問題,更換,無果;
以爲是header的設置問題,無果;


解決

最後發現問題:
由於要上傳到固定路徑$path,路徑下文件頻繁改變所以在.gitignore對其設置了忽略;導致遠程git上的倉庫中$path路徑下文件爲空;導致路徑裏要上傳文件的那個文件夾被默認刪除掉了;
所以$path不存在了,導致出現下載錯誤。
所以進行上傳操作的時候要對上傳的路徑進行判斷,是否存在該路徑,不然會發生錯誤。

              //判斷路徑是否存在,不存在自動生成
              if(!file_exists($path))
                {
                    mkdir($path);//生成指定路徑
                }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章