2014-01-26 51 views
0

如果選擇/刪除非法文件類型到放置區域,是否有方法在Javascript中的onDrop事件後中止/取消文件傳輸?如果文件類型無效,中止/取消後傳輸數據傳輸

例如,如果只有爲.jpg,.png文件格式是允許的,但用戶拖放到拖放區域具有* .gif注意擴展我想自動取消發送文件/上傳數據到服務器並通知選擇了無效的文件格式?

簡單的例子

div = document.getElementById('div'); 
div.ondragover = function(event){ 

    div.ondrop = function(event){ 

if(event.dataTransfer.files[0].type == 'gif'){ 
    abort/cencel upload here 
    } 
    } 


    return false;//cancelling ondragover to allow ondrop event 

    } 
+0

一些代碼,請。顯示你如何檢測一滴水。 – MJoraid

+0

@Mohammed Joraid,更新了代碼。 – user1190478

回答

0

所以,如果你正在使用的HTML + JS本地event捕捉下降。

這裏是如何得到信息:

event.dataTransfer.files[0].name // to get the file name 
event.dataTransfer.files[0].size // to get the file size 
event.dataTransfer.files[0].type // to get the file type 

過濾器類型:

首先,您需要取消默認行爲,以防止上傳。

event.preventDefault(); 

的IE使用this

​​

然後你可以分析你的數據。

if(event.dataTransfer.files[0].type == 'gif') 
{ 
    //show message 
} 

然後,您可以繼續使用例如上載。 AJAX

var xhr = new XMLHttpRequest(); 
xhr.open("POST", "receivefile.php", true); 
xhr.setRequestHeader("X_FILENAME", file.name); 
xhr.send(file); 

Full Article Source.

+0

是的,我使用的是簡單的Javascript。 event.preventDefault()適用於所有瀏覽器,還是僅適用於IE? – user1190478

+0

更新了我的答案。 – MJoraid

+0

我僅對IE使用event.preventDefault(),併爲其他瀏覽器返回false。我只是寫這個,看到你的更新的答案。 試過了,它工作。 謝謝! – user1190478