數(HTML文件輸入),我有一個基本的,衆所周知的多文件上傳表單。類似的東西...計數,限制上傳文件的
<input type="file" multiple="multiple" name="something[]" />
有沒有一種方法(最好是硬編碼選項)來限制用戶可以選擇的文件數量?通過限制我的意思是嚴格屏蔽,如果超過號碼不只是一個警告。
在此先感謝。 :)
數(HTML文件輸入),我有一個基本的,衆所周知的多文件上傳表單。類似的東西...計數,限制上傳文件的
<input type="file" multiple="multiple" name="something[]" />
有沒有一種方法(最好是硬編碼選項)來限制用戶可以選擇的文件數量?通過限制我的意思是嚴格屏蔽,如果超過號碼不只是一個警告。
在此先感謝。 :)
您可以實現一個JavaScript的解決方案,以檢查已選定的文件,然後你就可以用它來禁止上傳到服務器的數量。其實只有將是客戶端的解決方案,這個問題雖然,因爲實在沒有什麼反正從這些文件發佈到你的PHP腳本停止用戶。您可以指定最大上傳大小限制,但不限於正在上傳的文件數量。
最好的辦法是實行一些JavaScript檢查,確定一個合理的最大上傳大小爲HTTP服務器(或PHP),然後無視如果超過你的最大計數上傳過任何文件。
閱讀關於HTML5文件API這裏來限制所選文件的數量:http://dev.w3.org/2006/webapi/FileAPI/
這裏是在php.ini文件解釋如何作出上傳大小限制:http://php.net/manual/en/ini.core.php
至於建議在評論,退房:http://php.net/manual/en/ini.core.php#ini.max-file-uploads
'因爲確實沒有什麼能夠阻止用戶將這些文件發佈到你的php腳本中:實際上,有。在'php.ini'中,你可以用'max_file_uploads'選項限制這個數字(http://www.php.net/manual/en/ini.core.php#ini.max-file-uploads) – marvin 2012-03-21 22:13:57
@marvin:請將其添加爲答案 – zerkms 2012-03-21 22:14:38
@marvin我曾假設「允許上傳的文件的最大數量_simultaneously_」意味着阻止同時HTTP連接上傳不同文件的方法。情況並非如此嗎? – GoldenNewby 2012-03-21 22:19:21
一些插件似乎協助這一點,如:Uploadify (flash based)。然而,我還沒有足夠的使用這個或其他人來了解他們是否限制他們限制上傳。在Uploadify Multiple Uploads
更多信息。
我們都知道,在一個陣列first element is stored in 0 th index, 2nd in 1st index......nth in (n-1)th index
現在你不能把count($_FILES['something'])
它總是會返回5,因爲有數組
在5個鍵現在的問題是什麼$_FILES['something']['name'][0]
包含?第一個文件的=>名上傳
所以請喜歡
if(empty($_FILES['something']['name'][0]))
{
//checking whether a single file uploaded or not
//if enters here means no file uploaded
//so if you want you may put a check/validation here to make file
//upload a must in your website
}
if(isset($_FILES['something']['name'][5]))
{
//checking whether 6 files uploaded or not
//so here you can put a check/validation to restrict user from
//uploading more than 5 files
}
純的js替代品做到這一點,還有更多:
他們也可以在https://cdnjs.com/
你總是可以阻止它在PHP代碼,但這裏有沒有足夠的信息來知道你的接口行爲。 – Scuzzy 2012-03-21 22:06:00