顯然,如果您的腳本用於將您的文件作爲電子郵件附件發送,確實您的文件應該低於10Mo,因爲大量郵件服務器會拒絕更大的電子郵件。
出於安全原因,您無法從瀏覽器訪問有關文件的信息。但只要在表單的文件字段中選擇了該文件,就可以使用HTML5文件API。 See this page for a complete presentation。
這裏是代碼的一部分,你會在提交前需要處理的文件大小:
<input type="file" id="a_file" name="a_file" />
<script>
function fileSelect(evt) {
var file = evt.target.files[0];
var size_mo = (file.size/(1024 * 1024)).toFixed(3);
if (size_mo >= 10)
{
alert('Your file is too big ('+size_mo+'Mo).');
// eventually reset the form with window.your_form.reset() to avoid submit
}
else
{
alert('Your file is ready for upload ('+size_mo+'Mo)');
}
}
document.getElementById('a_file').addEventListener('change', fileSelect, false);
</script>
但是這種解決方案只能支持到最新的瀏覽器,而不是與Internet Explorer的版本低於兼容10.
沒有其他解決方案使用HTML或JS。如果您需要完全支持,您需要使用Flash或Java(請注意,還有未安裝這些技術的計算機)。 因此,您可以做的最好的做法是使用帶瀏覽器檢測的HTML5代碼,並且如果您無法讀取文件大小並且在支持HTML5的情況下具有良好行爲,請不要警告用戶。
它應該拋出一個你可以捕獲的'UPLOAD_ERR_INI_SIZE'錯誤。 – elclanrs 2013-04-22 20:24:39
我認爲這是導致問題的大小,但我看到我的日誌中沒有錯誤。除了大小還有什麼可能導致它?記憶?執行時間處理時間?希望我至少會看到一些錯誤,但我沒有。 – jackrugile 2013-04-22 20:41:31
可能是一個權限問題?你有權上傳到你上傳的目錄嗎? – doliver 2013-04-22 20:53:48