2015年8月27日 星期四

在IE與Edge瀏覽器中,HttpPostedFile FileName 傳遞完整路徑

好久沒有發文了,最近換了工作,所以又開始往不同領域發展,廢話不多說啦。


剛剛在試著使用jQueryFileUpload 搭配泛型處理涵式來進行檔案上傳的動作,發現在IE瀏覽器
與新的Edge瀏覽器,當<input="file">  Post 到後端的時候,後端總是接收到完整的檔案名稱,也就是路徑都含在裡面,導致上傳有一些問題,反倒是FireFox 與 Chrome 只會傳單純的檔案名稱:

Chrome→ 2015/8/27 下午 10:31:29 - 0c99b5562ee5da6e45b8_228x129.jpg, image/jpeg, 7774
IE→ 2015/8/27 下午 10:38:26 - D:\C\2011-07-02 15.42.47.jpg, image/jpeg, 302549

可以看到紅色的標示,IE傳遞的是完整的磁碟路徑,所以導致後端在存檔時發生System.NotSupportedException問題,這個時候只要把所接到的檔案路徑加上Path.GetFileName()這個方法判斷就好了,直接擷取檔案名稱。



沒有留言:

張貼留言