2010-02-03 139 views
6

有沒有其他方法可以在上傳之前檢查文件大小?要求是如果文件超出限制,表單不得提交。如果不是,我必須使用表格進行普通上傳,而且我不必使用Flash將文件完全上傳到服務器。在上傳之前檢查文件大小的其他方法

回答

2

有沒有其他的方法可以在上傳之前檢查文件的大小?

不在JavaScript中,文件大小爲not in the DOM

1

實例SWFUpload的時候,有你需要傳遞兩個參數:FILE_SIZE_LIMIT和file_queue_error_handler:

new SWFUpload({ 
    file_size_limit: "10 MB", 
    file_queue_error_handler: queueErrorHandler, 
    [...] 
}) 

然後:

function queueErrorHandler(file, errorCode) { 
    if (errorCode == SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT) { 
     alert("File exceeds the 10MB limit!"); 
    } 
} 

此檢查,如果文件大小爲啓動前限制範圍內上傳

+2

我只是不想使用Flash上​​傳文件。我的意思是,我只想使用SWFUpload檢查文件的大小,然後使用正常進程上載文件。這看起來有可能嗎? – jean27 2010-02-03 08:23:11

+0

我也發現我不能操縱輸入類型文件的值,所以我想我真正想要的是不可能的。 – jean27 2010-02-03 08:26:04

+0

是的,如果您可以設置普通文件輸入的值屬性,則使用SWFUpload來檢查文件大小是否可行 – 2010-02-04 10:36:22

1

檢查通過SWFUpload的控制文件大小是可能的。只需將SWFUpload控件放置在Web表單標記之外即可。告訴用戶點擊SWFUpload按鈕並指向他的上傳文件。使用JavaScript來確定文件大小,然後根據您認爲合適的方式利用此信息,例如填充驗證功能。然後你的主表單需要再次請求用戶指向他們的上傳文件,並且這個字段將執行文件的實際上傳。提交表單時,SWFUpload控件將被完全忽略,因爲它不是主窗體的一部分。

+0

你能舉個例子嗎?我也想只是文件大小,沒有別的,我有我自己的進度條和我自己的方式上傳文件到我的服務器。基本上我只是想檢索IE不能給我的文件大小。謝謝? – PathOfNeo 2013-01-14 08:06:38

+0

我認爲在OP的問題中暗示用戶不應該瀏覽/選擇文件兩次。 – 2013-05-13 09:16:57

相關問題