搜尋
首頁後端開發PHP問題php 無法上傳大圖片怎麼辦

php無法上傳大圖片的解決方法:1、開啟php.ini;2、尋找post_max_size並設定為自己需要的值;3、確認「file_uploads = on」;4、設定一個有效目錄; 5、設定允許上傳檔案大小的最大值。

php 無法上傳大圖片怎麼辦

本文操作環境:Windows7系統、PHP7.1版、DELL G3電腦

php 無法上傳大圖片怎麼辦?

php無法上傳大檔案完美解決方案

php.ini無法上傳大檔案完美解決方案

1、開啟php.ini(開啟方式就不用說了,百度一大堆)

2、查找post_max_size

表單提交最大數值,此項不是限制上傳單一檔案的大小,而是針對整個表單的提交資料進行限制的

預設為8m,設定為自己需要的值,此參數建議要設定比upload_max_filesize大一些

3、找出file uploads

是否允許透過http上傳檔案的開關,確認file_uploads = on

4、查找upload_tmp_dir

檔案上傳至伺服器上儲存暫存檔案的地方,如果沒指定就會用系統預設的暫存資料夾

如果系統報錯提示有「xxx臨時目錄xxx」的話,這個目錄就需要你來設定一個有效目錄,沒報錯就不用管

5、查找upload_max_filesize

允許上傳檔案大小的最大值,預設為2m,設定為自己需要的值此參數建議不要超過post_max_size值,因為它受控於post_max_size值(就算upload_max_filesize設定了1g,而post_max_size只設定了2m時,大於2m的檔案照樣傳不上去,因為它受控於post_max_size值)

6、如果要上傳大於8m的文件,還需要對下面的參數也進行設置:

查找max_execution_time = 600 ;每個php頁面運行的最大時間值(秒),預設30秒

max_input_time = 600 ;每個php頁面接收資料所需的最大時間,預設60秒

memory_limit = 8m ;每個php頁面所需的最大內存,預設8m

nginx法上傳大文件完美解決辦法

1.client_body_buffer_size 盡量設定的大點,這是基於速度的考慮,如果因為設定的過小,導致上傳的檔案老要寫磁碟,那速度就太慢了。

2.client_body_temp_path 路徑要有可寫權限,這個是明顯的錯誤了。改正了就好

3.client_max_body_size 設定上傳檔案的最大值,這個是基於安全的考慮,我們認為正常使用者不會或基本上不會上傳太大的檔案。

可以設定為client_max_body_size 100m; 或按照自己的業務來設定這個值。

範例

nginx的配置。

程式碼如下:

cd /export/servers/nginx/conf/nginx.conf,在這個設定檔裡面的server段裡面的

location / {
root html;
index index.html index.htm;
client_max_body_size 1000m;
}

加上了client_max_body_size字段,怎麼重啟都不行。後來在總設定檔裡面發現了分設定檔:

程式碼如下:

sendfileon;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
include domains/*;
#include domains/chat.local;
#include domains/chat.erp.com;
#include domains/support.chat.com;
#include douains/chat.com;
server {
listen 80;
server_name localhost;

於是找到了分設定文件,在分設定檔裡面進行修改。分配置檔案配置如下:

程式碼如下:

server
{
listen 80;
server_name chat.erp.360buy.com;
# access_log /export/servers/nginx/logs/chat.erp.360buy.com;
location / {
proxy_pass;
client_max_body_size 1000m;
}
}

用/export/servers/nginx/sbin/nginx -s reload重啟下,上傳檔案的大小受限的問題就解決了。

分享下我的解決過程,希望對大家有幫助。

如果還是無法解決我們需要看看是不是php表單設定問題

這段程式碼分成兩個文件,一個為upload.html,一個是upload.php

#upload.html

程式碼如下:

<form enctype=multipart/form-data action=upload.php method=post>
<input type=hidden name=max_file_size value=100000>
<input name=userfile type=file>
<input type=submit value=上传文件>
</form>

其中,

#請注意

這是一個標籤,我們要實作檔案的上傳,必須指定為multipart/form-data,否則伺服器將不知道要做什麼。

值得注意的是檔案upload.html中表單選項 max_file_size 的隱藏值域,透過設定其value(值)可以限制上載檔案的大小。

max_file_size 的值只是對瀏覽器的一個建議,實際上它可以被簡單的繞過。因此不要把對瀏覽器的限制寄望於該值。實際上,php 設定中的上傳檔案最大值,是不會失效的。但最好還是在表單中加上 max_file_size,因為它可以避免用戶在花時間等待上傳大檔案之後才發現該檔案太大了的麻煩。

upload.php

程式碼如下:

$f=&$http_post_files[&#39;myfile&#39;];
$dest_dir=’uploads’;//设定上传目录
$dest=$dest_dir.’/’.date(ymd)._.$f[&#39;name&#39;];//设置文件名为日期加上文件名避免重复
$r=move_uploaded_file($f[&#39;tmp_name&#39;],$dest);
chmod($dest, 0755);//设定上传的文件的属性

<?copy($_files[myfile][tmp_name],$_files[myfile][name]);?>

以上範例中 $_files 陣列的內容如下所示。我們假設檔案上傳欄位的名稱為 userfile(名稱可隨意命名)

推薦學習:《PHP影片教學

以上是php 無法上傳大圖片怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),