午夜国产狂喷潮在线观看|国产AⅤ精品一区二区久久|中文字幕AV中文字幕|国产看片高清在线

    php無法上傳大文件完美解決方案
    來源:易賢網(wǎng) 閱讀:611 次 日期:2014-10-30 08:27:26
    溫馨提示:易賢網(wǎng)小編為您整理了“php無法上傳大文件完美解決方案”,方便廣大網(wǎng)友查閱!

    php.ini無法上傳大文件完美解決辦法

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

    2、查找post_max_size

    表單提交最大數(shù)值,此項(xiàng)不是限制上傳單個(gè)文件的大小,而是針對(duì)整個(gè)表單的提交數(shù)據(jù)進(jìn)行限制的

    默認(rèn)為8M,設(shè)置為自己需要的值,此參數(shù)建議要設(shè)置比upload_max_filesize大一些

    3、查找File Uploads

    是否允許通過http上傳文件的開關(guān),確認(rèn)file_uploads = on

    4、查找upload_tmp_dir

    文件上傳至服務(wù)器上存儲(chǔ)臨時(shí)文件的地方,如果沒指定就會(huì)用系統(tǒng)默認(rèn)的臨時(shí)文件夾

    如果系統(tǒng)報(bào)錯(cuò)提示有“XXX臨時(shí)目錄XXX”的話,這個(gè)目錄就需要你來設(shè)置一個(gè)有效目錄,沒報(bào)錯(cuò)就不用管

    5、查找upload_max_filesize

    允許上傳文件大小的最大值,默認(rèn)為2M,設(shè)置為自己需要的值此參數(shù)建議不要超過post_max_size值,因?yàn)樗芸赜趐ost_max_size值(就算upload_max_filesize設(shè)置了1G,而post_max_size只設(shè)置了2M時(shí),大于2M的文件照樣傳不上去,因?yàn)樗芸赜趐ost_max_size值)

    6、如果要上傳大于8M的文件,還需要對(duì)下面的參數(shù)也進(jìn)行設(shè)置:

    查找max_execution_time = 600 ;每個(gè)PHP頁(yè)面運(yùn)行的最大時(shí)間值(秒),默認(rèn)30秒

    max_input_time = 600 ;每個(gè)PHP頁(yè)面接收數(shù)據(jù)所需的最大時(shí)間,默認(rèn)60秒

    memory_limit = 8M ;每個(gè)PHP頁(yè)面所需要的最大內(nèi)存,默認(rèn)8M

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

    1.client_body_buffer_size 盡量設(shè)置的大點(diǎn),這是基于速度的考慮,如果因?yàn)樵O(shè)置的過小,導(dǎo)致上傳的文件老要寫磁盤,那速度就太慢了。

    2.client_body_temp_path 路徑要有可寫權(quán)限,這個(gè)是明顯的錯(cuò)誤了。改正了就好

    3.client_max_body_size 設(shè)置上傳文件的最大值,這個(gè)是基于安全的考慮,我們認(rèn)為正常用戶不會(huì)或者基本不會(huì)上傳太大的文件。

    可以設(shè)置為client_max_body_size 100m; 或者按照自己的業(yè)務(wù)來設(shè)置這個(gè)值。

    例子

    nginx的配置。

    代碼如下

    cd /export/servers/nginx/conf/nginx.conf,在這個(gè)配置文件里面的server段里面的

    location / {

    root html;

    index index.html index.htm;

    client_max_body_size 1000m;

    }

    加上了client_max_body_size 字段,怎么重啟都不行。后來在總配置文件里面發(fā)現(xiàn)了分配置文件:

    代碼如下

    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;

    于是找到了分配置文件,在分配置文件里面進(jìn)行修改。分配置文件配置如下:

    代碼如下

    server

    {

    listen 80;

    server_name chat.erp.360buy.com;

    # access_log /export/servers/nginx/logs/chat.erp.360buy.com;

    location / {

    proxy_pass http://tomcat;

    client_max_body_size 1000m;

    }

    }

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

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

    如果還是無法解決我們需要看看是不是php表單設(shè)置問題

    這段代碼分為兩個(gè)文件,一個(gè)為upload.html,一個(gè)是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>

    其中,

    請(qǐng)注意

    這是一個(gè)標(biāo)簽,我們要實(shí)現(xiàn)文件的上傳,必須指定為multipart/form-data,否則服務(wù)器將不知道要干什么。

    值得注意的是文件upload.html中表單選項(xiàng) MAX_FILE_SIZE 的隱藏值域,通過設(shè)置其Value(值)可以限制上載文件的大小。

    MAX_FILE_SIZE 的值只是對(duì)瀏覽器的一個(gè)建議,實(shí)際上它可以被簡(jiǎn)單的繞過。因此不要把對(duì)瀏覽器的限制寄希望于該值。實(shí)際上,PHP 設(shè)置中的上傳文件最大值,是不會(huì)失效的。但是最好還是在表單中加上 MAX_FILE_SIZE,因?yàn)樗梢员苊庥脩粼诨〞r(shí)間等待上傳大文件之后才發(fā)現(xiàn)該文件太大了的麻煩。

    upload.php

    代碼如下

    $f=&$HTTP_POST_FILES['Myfile'];

    $dest_dir=’uploads’;//設(shè)定上傳目錄

    $dest=$dest_dir.’/’.date("ymd")."_".$f['name'];//設(shè)置文件名為日期加上文件名避免重復(fù)

    $r=move_uploaded_file($f['tmp_name'],$dest);

    chmod($dest, 0755);//設(shè)定上傳的文件的屬性

    或者

    <?copy($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);?>

    以上范例中 $_FILES 數(shù)組的內(nèi)容如下所示。我們假設(shè)文件上傳字段的名稱為 userfile(名稱可隨意命名)

    更多信息請(qǐng)查看IT技術(shù)專欄

    更多信息請(qǐng)查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:php無法上傳大文件完美解決方案
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2025國(guó)考·省考課程試聽報(bào)名

    • 報(bào)班類型
    • 姓名
    • 手機(jī)號(hào)
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專用圖標(biāo)