2017-08-16 99 views
1

我想在Web門戶上實現小文件上傳。我發現PHP.net此解決方案:move_uploaded_file()只上傳小文件

<form action='action.php' method='post' enctype="multipart/form-data"> 
    <!-- MAX_FILE_SIZE must precede the file input field --> 
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> 
    <!-- Name of input element determines name in $_FILES array --> 
    Send this file: 
    <input name="userfile" type="file"/> 
    <!-- hidden input fields to sent variables to action.ph --> 
    <innput type="hidden" name='casenumber' id="caseForFileUpload" /> 
    <input type="hidden" name='key' id="keyForFileUpload" /> 
    <input type="submit" value="Send File" name="uploadfiles"/> 
</form> 

,這是action.php

if(isset($_POST['uploadfiles'])){ 
    if(!empty($_FILES)){ 
     $target_dir = "upload/"; 
     $target_file = $target_dir.basename($_FILES['userfile']['name']); 
     $fileType = pathinfo($target_file,PATHINFO_EXTENSION); 

     if($fileType == "pdf"){ 
      if(move_uploaded_file($_FILES['userfile']['tmp_name'], $target_file)){ 
       echo "<br><br>File uploaded"; 
      }else{ 
       echo "<br><br>File could not be uploaded"; 
      } 
     } 
    } 
} 

相關部分這非常適用於小文件< 150KB,但沒有比這更大的文件,我不知道這是爲什麼發生。從php.ini

相關信息:

upload_max_filesize = 20M 
post_max_size = 20M 
max_execution_time = 30 
max_input_time = 60 

所以它真的應該對大於150KB大文件的工作。 PHP日誌中沒有消息,並且沒有使用可能會覆蓋這些設置的.htaccess

我還有什麼地方可以追蹤此行爲,或者我還可以如何實現文件上傳以允許最大2MB的文件大小?

PS:另請注意,服務器仍在使用PHP 5.2.17運行,並且它無法將其更新到新版本。

+2

'name =「MAX_FILE_SIZE」value =「30000」'<<<仔細看看。這是30,000字節。根據手冊http://php.net/manual/en/features.file-upload.post-method.php *「MAX_FILE_SIZE隱藏字段(以字節爲單位)」*。要麼刪除該輸入,要麼增加它。 –

+1

AS @ Fred-ii-已經被告知。更改隱藏輸入的值爲2000000. – Oliver

+1

其他事情還需要配置.. plz chk這個線程https://stackoverflow.com/questions/615312/no-error-when-uploading-a-really-big -file-in-php – Sam

回答

相關問題