我正在Google Chrome浏览器中上传文件。
当我尝试使用以下代码警告输入文件(abc.pdf)的值时,它变为C:\fakepath\abc.pdf
。
var ab = document.getElementById(“myfile”)。value;
警报(AB);
所以我尝试了以下方法来获取文件输入的值....
split("\\")
机制,但没有得到结果。 lastIndexOf("\\")
查找“\”的最后一个索引,但没找到。 我编写了以下代码段。但无法理解下一步如何进行 任何建议都将受到高度赞赏。
<html>
<head>
<script type="text/javascript">
function show(){
var ab = document.getElementById("myfile").value;
alert(ab);
}
</script>
</head>
<body>
<form>
<input type="file" name="myfile" id="myfile" value="" onchange="show()"/>
<input type="button" name="submit" value="submit">
</form>
</body>
</html>
答案 0 :(得分:2)
C:\fakepath\
只是浏览器为了安全目的而添加的内容,并且在将实际值发布到服务器时不会出现。
如果您想更换它们以便在alert()
电话中显示(或用于其他目的),您可以尝试通过replace()
电话取代它:
// This should strip off 'C:\fakepath\' from your file path
var ab = document.getElementById("myfile").value.replace('C:\\fakepath\\','');
alert(ab);
您可以在下面看到完整的工作示例(只需添加文件):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Fakepath Eraser Pro</title>
</head>
<body>
<input type='file' onchange='alert(this.value.replace("C:\\fakepath\\",""))' />
</body>
</html>
答案 1 :(得分:0)
您可以尝试替换吗?
var ab = document.getElementById("myfile").value.replace(/C:\\fakepath\\/i, '');
答案 2 :(得分:0)
&#34; \&#34;是一个特殊字符,它必须以字符串形式转义才能正常工作。
var path = "C:\\fakepath\\abc.pdf";
var array = path.split("\\");
console.log(array[array.length-1]);
// output will be "abc.pdf"