您可以使用HTML <input type="file" />
的the accept
attribute。
accept
如果type屬性的值是文件,該屬性指示類型的服務器接受的文件;否則就是 被忽略。該值必須是一個以逗號分隔的獨特內容 類型說明符列表:
- 文件擴展開始與STOP字符(U + 002E)。 (例如: 「.JPG; png格式; .DOC」)
- 有效MIME類型沒有擴展
- 音頻/ *表示聲音文件(HTML5)
- 視頻/ *表示視頻文件(HTML5)
- 圖像/ *代表圖像文件(HTML5)
它將與<s:file />
也因爲工作它允許動態屬性。
編輯:你是對的,因爲某些原因,延伸和啞劇檢查失敗,只有HTML5的工作方式:running demo
那麼這將工作(在大多數瀏覽器,check out the curent compatibility here),提示圖像被選擇:
<s:file name="file" label="Upload Image" accept="image/*" />
它是一個非塊濾波器,但是:*.*
仍然是選擇素表格從對話框中選擇;
由於這只是一個客戶端過濾,所以你的必須還要檢查contentType,最後是擴展名,服務器端用Struts2 File Upload Interceptor。
例如:
<interceptor-ref name="fileUpload">
<param name="allowedTypes">
image/png,image/gif,image/jpeg
</param>
<param name="allowedExtensions">
.png,.gif,.jpeg,.jpg
</param>
</interceptor-ref>
_not所有文件(*。*)_你的意思是一個抽象的瀏覽器設置的條件不是這個過濾器添加到對話? –
@RomanC我的意思是隻需要它接受圖像而不是任何其他類型的文件。 – Jack
你想如何接受他們? –