[javascript] 如何解決C:\ fakepath?



Answers

使用

document.getElementById("file-id").files[0].name; 

代替

document.getElementById('file-id').value
Question
<input type="file" id="file-id" name="file_name" onchange="theimage();">

這是我的上傳按鈕。

<input type="text" name="file_path" id="file-path">

這是我必須顯示文件完整路徑的文本字段。

function theimage(){
 var filename = document.getElementById('file-id').value;
 document.getElementById('file-path').value = filename;
 alert(filename);
}

這是解決我的問題的JavaScript。 但在警報價值給我

C:\fakepath\test.csv 

Mozilla給我:

test.csv

但我想要本地完全合格的文件路徑 。 如何解決這個問題?

如果這是由於瀏覽器安全問題導致的,那麼應該怎麼做呢?







對輸入文件類型,我在輸入onchange事件上使用FileReader對象! 這個例子使用readAsDataURL函數,因此你應該有一個標籤。 FileReader對像還具有readAsBinaryString以獲取二進制數據,該數據稍後可用於在服務器上創建相同的文件

例:

var input = document.getElementById("inputFile");
var fReader = new FileReader();
fReader.readAsDataURL(input.files[0]);
fReader.onloadend = function(event){
    var img = document.getElementById("yourImgTag");
    img.src = event.target.result;
}



我遇到了同樣的問題。 在IE8中,它可以通過在文件輸入控制之後創建隱藏輸入來解決。 用它的前一個兄弟的值填充它。 在IE9中,這已被固定。

我想要了解完整路徑的原因是在上傳之前創建了JavaScript圖像預覽。 現在我必須上傳文件才能創建所選圖像的預覽。




Related