[問題] 想請問取代 C:\fakepath的問題

看板Ajax作者 (崩啾)時間11年前 (2013/11/26 17:22), 編輯推噓1(109)
留言10則, 2人參與, 最新討論串1/1
我做了一隻程式 讓使用者可以上傳一隻LOG檔,然後我轉成HTML檔給使用者 但是在抓使用者上傳檔案的時候 發現因為IE有保護使用者檔案的機制,把路徑改為C:\fakepath\xxxx.log 拜過stackoverflow之後,還是沒有辦法把前面的C:\fakepath取消掉 想請教我的寫法上哪邊有問題?謝謝 <head> <script language="javascript"> $(document).ready(function() { $("#file_exec").click(function(){ $('#exec').val().replace("C:fakepath", ""); alert($("#exec").val()); }); </script> </head> <body> <input type="file" id="exec" name="exec"> <input type="button" id="file_exec" value="執行"> </body> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 101.13.244.223

11/26 18:33, , 1F
為什麼想改掉那個C:\fakepath呀
11/26 18:33, 1F

11/26 18:37, , 2F
而且不只是IE 其他的瀏覽器也會為了保護使用者的資料
11/26 18:37, 2F

11/26 18:38, , 3F
是因為你沒寫"\\"嗎 XD
11/26 18:38, 3F
不是這個原因啦,我有加\\跟沒加都有試過XD

11/26 18:38, , 4F
改成用fakepath顯示檔案路徑
11/26 18:38, 4F

11/26 18:39, , 5F
另外$('#exec').val().replace("C:fakepath", "");
11/26 18:39, 5F

11/26 18:40, , 6F
並不會改變$('#exec').val()的值
11/26 18:40, 6F

11/26 18:40, , 7F
所以你alert出來的一樣會是c:\fackpath\xxxxx
11/26 18:40, 7F

11/26 18:42, , 8F
而且upload input 也不能用 .val('value')的方式去改變
11/26 18:42, 8F

11/26 18:43, , 9F
如果你只是想單純的顯示出filename 不要前面的fakepath
11/26 18:43, 9F

11/26 18:43, , 10F
就把他的val丟到另一個var裡面再去做replace吧Y
11/26 18:43, 10F
謝謝S大,最後我是把value丟到其他var下做replace 會堅持要把fakepath取代掉一方面是後端的exec好像沒辦法接到fakepath的參數 另一方面是後端轉換好了HTML之後 前段要alert 產生的檔名.HTML給使用者知道產生的檔案名 所以不想讓使用者看到產生C:\fakepath\xxx.HTML XD ※ 編輯: qm29213039 來自: 111.249.192.20 (11/28 00:03)
文章代碼(AID): #1Ib6Xihw (Ajax)
文章代碼(AID): #1Ib6Xihw (Ajax)