解決ie上傳檔案後取消上傳再上傳同名檔案上傳不了

2021-06-20 17:03:47 字數 681 閱讀 6757

測試反應了乙個問題,就是在ie底下上傳了乙個檔案,然後取消了,然後再上傳那個同名檔案,上傳不了,除非重新整理一下頁面。然後用ie 10看了下,果真存在這個問題。

列印發現,即使用js把input file的值清空了,在ie 10底下,仍能獲取到之前檔案值。所以導致在input file繫結change事件的時候,根本就沒有觸發,因為它的屬性值沒變。而firefox不會存在這種問題,每次列印input file的時候會是空值。

然後網上搜尋發現,ie底下js是清不掉input file的值的,需要重置表單。

由於jquery中,提交表單是像下面這樣的:

$('#myform').submit()

所以,想當然的認為,重置表單,當然就是像下面這樣子嘍:

$('#myform').reset()  

但是這樣firebug檢視報了個錯。reset方法沒定義。原來jquery中沒有reset方法,然後通過一種間接的方法,如下:

$('#myform')[0].reset()  

也就是通過呼叫 dom 中的reset方法來重置表單。搞定!

而且在input file值方面,firefox取到的是當前檔名,而ie和chrome會在檔名前面加乙個'c:\fakepath\',據說是出於安全性的考慮,上傳檔案時遮蔽了真實的本地檔案路徑,而以「c:\fakepath\」取代之。

更多請支援:

檔案上傳後改名

正常檔案上傳之後,在上傳的資料夾中的檔名,並不是我們想要的標準的檔名,於是就存在在檔案上傳之後要為檔案改名,一般檔案的上傳要用到formidable這個第三方模組 var formidable require formidable router.post changeheadpic function...

停止git上傳 git取消檔案跟蹤

在使用git的時候,有些檔案是不需要上傳的,所以就可以修改 gitignore 例如 如果是對所有檔案都取消跟蹤的話,就是 git rm r cached 不刪除本地檔案 git rm r f 刪除本地檔案 對某個檔案取消跟蹤 git rm cached readme1.txt 刪除readme1....

vant 上傳附件後回顯 vant上傳檔案到後端

很簡單,基本是使用檔案構建formdata引數,如下 html after read afterread before delete beforedelete v model filelist ts filelist 檔案上傳 afterread file else reject catch rej...