php無法上傳大文件的解決方法-創(chuàng)新互聯(lián)

這篇“php無法上傳大文件的解決方法”文章,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要參考一下,對(duì)于“php無法上傳大文件的解決方法”,小編整理了以下知識(shí)點(diǎn),請(qǐng)大家跟著小編的步伐一步一步的慢慢理解,接下來就讓我們進(jìn)入主題吧。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了老邊免費(fèi)建站歡迎大家使用!

php有什么用

php是一個(gè)嵌套的縮寫名稱,是英文超級(jí)文本預(yù)處理語言,它的語法混合了C、Java、Perl以及php自創(chuàng)新的語法,主要用來做網(wǎng)站開發(fā),許多小型網(wǎng)站都用php開發(fā),因?yàn)閜hp是開源的,從而使得php經(jīng)久不衰。

php無法上傳大文件的解決辦法:1、開啟臨時(shí)文件并對(duì)該文件夾設(shè)置寫入的權(quán)限;2、增加“max_execution_time”的值;3、設(shè)置“file_uploads”的值為on;4、設(shè)定“upload_max_filesize=20M”等。

php上傳大文件失敗的原因及應(yīng)對(duì)策略

為什么上傳大文件總是失敗,但是上傳小文件就沒有問題。小編也不得其解,網(wǎng)上搜其原因,整理了一篇關(guān)于php上傳大文件失敗的原因和解決辦法的文章,分享給大家。

下面分別是各種原因以及解決辦法:

第1種情況:文件上傳時(shí)存放文件的臨時(shí)目錄必須是開啟的并且是 PHP 進(jìn)程所有者用戶可寫的目錄。如果未指定則 PHP 使用系統(tǒng)默認(rèn)值。

php.ini文件中upload_tmp_dir用來說明PHP上傳的文件放置的臨時(shí)目錄,要想上傳文件,得保證服務(wù)器沒有關(guān)閉臨時(shí)文件并對(duì)該文件夾有寫入的權(quán)限。

第2種情況:max_execution_time 的值必須足夠大。變量 max_execution_time 設(shè)置了在強(qiáng)制終止腳本前PHP等待腳本執(zhí)行完畢的時(shí)間,此時(shí)間以秒計(jì)算。當(dāng)腳本進(jìn)入了一個(gè)無限循環(huán)狀態(tài)時(shí)此變量非常有用。然而,當(dāng)存在一個(gè)需要很長時(shí)間完成的合法活動(dòng)時(shí)(例如上傳大型文件),這項(xiàng)功能也會(huì)導(dǎo)致操作失敗。在這樣的情況下必須考慮將此變量值增大,以避免PHP在腳本正在執(zhí)行某些重要過程的時(shí)候?qū)⒛_本關(guān)閉,例如設(shè)置為 90 秒。

max_execution_time = 90

注意在php函數(shù)中還有個(gè)set_time_limit 函數(shù),和以上這個(gè)設(shè)置的作用是相同的,這兩者的區(qū)別就是 以上是在 php.ini 文件中設(shè)置的,而set_time_limit 是寫在php文件中的。所以也可以通過在頁面中用 set_time_limit 設(shè)置程序的最長執(zhí)行時(shí)間,比如無限制即:set_time_limit(0);

【推薦學(xué)習(xí):《PHP視頻教程》】

第3種情況:file_uploads = On 默認(rèn)值為on,意思是允許通過 HTTP 進(jìn)行文件上傳,此選項(xiàng)不能設(shè)置為OFF。

第4種情況:upload_max_filesize = 2M 設(shè)定文件上傳的大小的較大值,php.ini配置文件中的默認(rèn)文件上傳大小為2M,php初學(xué)者容易犯的一個(gè)錯(cuò)誤是在編寫文件上傳功能時(shí)通過設(shè)置上傳文件較大大小的表單區(qū)域,即允許上傳文件的較大值,max_file_size(隱藏值域)的值來規(guī)定上傳文件的大小,其實(shí)一般別人可以繞過這個(gè)值,所以安全起見,好是在 php.ini 配置文件中配置 upload_max_filesize 選項(xiàng),設(shè)定文件上傳的大小。默認(rèn) upload_max_filesize = 2M,即文件上傳的大小為2M,如果你想上傳超過8M的文件,比如20M,你必須設(shè)定upload_max_filesize = 20M。

第5種情況:post_max_size 這個(gè)值也必須足夠大。這個(gè)變量也是一個(gè)同表單提交相關(guān)的變量,它限制的是客戶端通過POST方法進(jìn)行一次表單提交時(shí)PHP程序所能夠接收的較大數(shù)據(jù)量。一般情況下,將此值的值設(shè)置的比 upload_max_filesize 略大即可,比如要上傳20MB的文件,此值可以設(shè)置為 21MB。

第6種情況:max_input_time 此變量可以以秒為單位對(duì)通過POST、GET以及PUT方式接收數(shù)據(jù)時(shí)間進(jìn)行限制。如果應(yīng)用程序所運(yùn)行環(huán)境處在網(wǎng)絡(luò)比較慢的情況下,則需要增加此值以增大接收數(shù)據(jù)所需要的時(shí)間,比如將此值設(shè)置為 90秒。

max_input_time = 90

第7種情況:memory_limit 也必須足夠大,為了避免正在運(yùn)行的腳本大量使用系統(tǒng)可用內(nèi)存,PHP允許定義內(nèi)存使用限額。通過memory_limit變量來指定單個(gè)腳本程序可以使用的較大內(nèi)存容量。變量memory_limit的值應(yīng)當(dāng)適當(dāng)大于post_max_size的值。

第8種情況:另外如果你的主機(jī)是 nginx 操作系統(tǒng)的話,如果以上操作都不行的話,記得在nginx 的配置文件里面加上 client_max_body_size 20m; 這樣一句,即表示較大允許上傳20MB,具體根據(jù)自己的情況來。我的nginx 配置文件的位置在 /usr/local/nginx/conf/nginx.conf。

閱讀完這篇文章大家應(yīng)該大概知道大文件上傳失敗的原因了吧,希望本文可以為大家提供一些思路,更好的去解決類似問題。

以上是“php無法上傳大文件的解決方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享標(biāo)題:php無法上傳大文件的解決方法-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://bm7419.com/article34/diosse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站營銷、軟件開發(fā)、自適應(yīng)網(wǎng)站、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)