2016-11-26 96 views
0

我已經使用ng-file-upload插件(https://github.com/danialfarid/ng-file-upload)設置了基於Angular的文件上傳,並且我一直在用PHP腳本處理文件上傳。

文件上傳和腳本在較小文件上工作(在<上測試1MB),但在較大文件(9MB)上失敗。這使我相信有一個文件上傳問題。不過,我已經創造了/ wwwroot文件夾一個文件.user.ini用一行:

upload_max_filesize=20M 

難道還有其他原因$ _FILES和$ _ POST數組將是空的?

JS代碼:

Upload.upload({ 
    url: '/scripts/receiveFile.php', 
    file: file 
}).then(function(resp) { 
    console.log(resp.data); 
}, function(resp) { 
    console.log(resp.data); 
}, function(evt) { 
    var progressPercent = parseInt(100.0 * evt.loaded/evt.total); 
    console.log(progressPercent + "%"); 
}); 

HTML代碼:

<div> 
    <h1>Upload</h1> 
    <input type="file" accept=".zip" ngf-select="submitFile($file)"></input> 
</div> 

PHP代碼:

$file_name = basename($_FILES['file']['name']); 
$file_tmp_name = $_FILES['file']['tmp_name']; 

因爲 '文件' 的$ _FILES數組中未定義的腳本失敗 - 因爲$ _FILES數組是空的。

謝謝!

+1

嘗試'post_max_size = 20M'也檢查您的配置是否正在使用'phpinfo()' – bansi

回答

1

PHP有一個令人困惑的做文件上傳。要設置較大的上傳大小,您應該設置upload_max_filesizepost_max_size。這些可以是獨立不同的值,因爲它們做不同的事情。

post_max_size是可以通過POST請求發送到PHP腳本的最大文件大小。 upload_max_filesize是通過任何方法允許的最大文件大小。