作者qm29213039 (崩啾)
看板Ajax
標題[問題] 想請問取代 C:\fakepath的問題
時間Tue Nov 26 17:22:49 2013
我做了一隻程式
讓使用者可以上傳一隻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
1F:推 saluyi:為什麼想改掉那個C:\fakepath呀 11/26 18:33
2F:→ saluyi:而且不只是IE 其他的瀏覽器也會為了保護使用者的資料 11/26 18:37
3F:→ CaptainH:是因為你沒寫"\\"嗎 XD 11/26 18:38
不是這個原因啦,我有加\\跟沒加都有試過XD
4F:→ saluyi:改成用fakepath顯示檔案路徑 11/26 18:38
5F:→ saluyi:另外$('#exec').val().replace("C:fakepath", ""); 11/26 18:39
6F:→ saluyi:並不會改變$('#exec').val()的值 11/26 18:40
7F:→ saluyi:所以你alert出來的一樣會是c:\fackpath\xxxxx 11/26 18:40
8F:→ saluyi:而且upload input 也不能用 .val('value')的方式去改變 11/26 18:42
9F:→ saluyi:如果你只是想單純的顯示出filename 不要前面的fakepath 11/26 18:43
10F:→ saluyi:就把他的val丟到另一個var裡面再去做replace吧Y 11/26 18:43
謝謝S大,最後我是把value丟到其他var下做replace
會堅持要把fakepath取代掉一方面是後端的exec好像沒辦法接到fakepath的參數
另一方面是後端轉換好了HTML之後
前段要alert 產生的檔名.HTML給使用者知道產生的檔案名
所以不想讓使用者看到產生C:\fakepath\xxx.HTML XD
※ 編輯: qm29213039 來自: 111.249.192.20 (11/28 00:03)