• <button id="eiyoe"><acronym id="eiyoe"></acronym></button>
    <em id="eiyoe"></em>

  • <rp id="eiyoe"><acronym id="eiyoe"><input id="eiyoe"></input></acronym></rp>
      查看: 1466|回復: 0
      上一主題 下一主題

      php沒有文件被上傳的實例分析及解決辦法

      80572

      主題

      0

      好友

      積分

      離線 發信

      跳轉到指定樓層
      樓主
      發表于 2021-11-29 17:11 | 只看該作者 | 倒序瀏覽

      1、修改php.ini,設置上傳文件的大小。

      2、在httpd.conf中添加“php_value upload_max_filesize "300M"”。

      3、重啟服務器即可。

      使用ThinkPhp框架上傳小圖片文件成功,上傳大文件失敗。

      后來查找了原因,是因為php限制了上傳文件的大小,修改php.ini如下配置:

      upload_max_filesize = 300M
      post_max_size = 300M

      重啟服務器,依然如此,問題并未得到解決。

      解決方法如下,在httpd.conf中添加如下:

      php_value upload_max_filesize "300M"
      php_value post_max_size "300M"

      再次重啟服務器,OK!

      知識點擴展:

      錯誤處理

      對file數組中的error屬性進行判斷處理:

      $error=$myfile['myfile']['error'];
        if ($error==0){//為0,代表上傳成功
          if (move_uploaded_file($tmp,"userpic/".$picname)) {
            echo "移動文件成功";
          }else{
            echo "移動文件失敗";
          }
        }else{//不為0,匹配錯誤信息
          switch ($error){
            case 1:
              echo "超過文件最大上傳限制";//php.ini中upload_max_filesize
              break;
            case 2:
              echo "超過表單文件大小限制";//HTML表單中MAX_FILE_SIZE選項
              break;
            case 3:
              echo "文件部分被上傳";
              break;
            case 4:
              echo "未選擇上傳文件";
              break;
            case 7://文件寫入失敗
            case 8:
              echo "系統錯誤";
              break;
          }
        }
      
      

      上傳限制

      在前端可以對上傳的文件類型,大小進行限制:

      <!--表單隱藏域對上傳大小進行限制-->
      <input type="hidden" name="MAX_FILE_SIZE" value="2097152">
      <!--accept 對文件類型限制-->
      <input type="file" name="myfile" accept="image/jpeg,image/png">
      
      

      注意限制是以字節為單位

      在服務器端也要做響應的限制:

      $size=$myfile['size'];//獲取文件大小
      $MaxSize=2097152;//設置最大允許字節
      $type=$myfile['type'];//獲取圖片類型
      $AllowTypr=array('image/jpeg','image/png','image/gif');//允許類型數組
      if ($error==0){//為0,代表上傳成功
        if ($size>$MaxSize){
          echo "<script>alert('文件大小超過限制');</script>";
          echo "<script>history.back(1);</script>";
          exit();
        }
        if (!in_array($type,$AllowTypr)){
          echo "<script>alert('請上傳正確圖片類型');</script>";
          echo "<script>history.back(1);</script>";
          exit();
        }
      
      

      到此這篇關于php沒有文件被上傳的實例分析及解決辦法的文章就介紹到這了,更多相關php沒有文件被上傳的解決辦法內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

      來源:http://www.jb51.net/article/228648.htm