2014-11-06 104 views
1

我很困惑,因爲沒有在這個問題上找到答案。HTML文件上傳接受和拒絕文件擴展名

問題:

我使用的HTML輸入(type='file')選擇文件附加到消息。但我想限制它只允許上傳圖片和文檔。我知道有一個accept屬性。但對於我所知道的,我們可以通過傳遞image/*來限制它接受圖像。但我不認爲文件有類似的限制。但是我可以添加我想允許的單個擴展。我也想完全拒絕擴展名爲*.exe*.app的文件。

問題:

我的問題是,有沒有類似的圖像限制器我可能會丟失一個限制器。或者,如果我添加文件類型的單個擴展名,我想允許我將添加什麼擴展名(請記住用戶在Windows,Mac和Linux上使用此服務)。

注意:我試圖不涉及js/jquery這個目的。

問候

+0

您可以手動添加適當文件的擴展名,即'.doc,.docx,.pdf,.txt'等 – Bijan 2014-11-06 23:22:21

+0

@Bijan這是我不確定在Mac,Windows中有多少種不同的組合文檔類型和Linux – 2014-11-07 00:21:16

+0

'images/*'是所有瀏覽器/計算機可以打開的東西。但是'documents/*'不會有'',因爲正如你所說的,不同的操作系統有完全不同的類型。只接受文件的基本標準文件類型 – Bijan 2014-11-07 00:25:03

回答

1

對於現代的瀏覽器,你可以在input元素上使用accept,你將不得不添加所有你能接受的文件和離開了你拒絕的人。僅僅使用HTML就可以做到這一點,但是如果你使用JavaScript,PHP等,很容易被拒絕。由於HTML不是一種編程語言,你可以做或不可以做的事情非常有限。

<input type="file" accept="[everything but .exe and .app]"> 

正如你所說,你將不得不在這裏放置大量的文件。不幸的是,現在沒有reject屬性可以添加。

注意:爲了支持瀏覽器,您將需要使用JavaScript或其他編程語言來檢查文件的輸入。否則,從我上面顯示的是你所能做的僅僅是HTML。

我會建議只是壓低並使用JavaScript來檢查,這將是更容易的方式。

+0

舊的瀏覽器會發生什麼?他們會允許嗎? – Ave 2014-11-06 23:29:50

+1

@ardaozkal不,只有IE 10+和相對更新版本的Chrome,Firefox等我會添加 – 2014-11-06 23:30:47

+0

您錯誤地理解了這個問題,我想拒絕具有'.app'和'.exe'擴展名的文件,並且允許圖像和文檔 – 2014-11-07 00:19:54