0

我个性化了文件上传,这在所有浏览器中都很好用,但是,当我在 chrome 中测试它时,它添加了“c:\fakepath\”。所以我在网上某处阅读以替换路径,所以我做到了,现在问题是,文件没有上传到我的服务器,路径更改,但文件无法上传。

<script language="JavaScript" type="text/javascript">
function BrowseClick()
{
    var fileinput = document.getElementById("picture");
    fileinput.click();
}
function changebrowse()
{
var fileinput = document.getElementById("picture");
var textinput = document.getElementById("picture2");
textinput.value = fileinput.value.replace("C:\\fakepath\\", "");
}
</script>

<form method="POST" type="multipart/form-data">
<label for="test">test
<input type="text" id="picture2" readonly="true" value="myLabel"/>
<input type="button" value="myLabel" id="fakeBrowse" onclick="BrowseClick();"/>
<input name='picture' id="picture" type="file" accept="image/*" style="display: none" onChange="changebrowse();"/>
<input type="submit">
</form>

以上是我的代码,也许我遗漏了什么?有任何想法吗?

4

2 回答 2

0

如果要上传文件,您至少需要表单标签上的方法和类型属性:

<form method="POST" type="multipart/form-data">
于 2013-08-01T16:58:51.570 回答
0

您面临的问题是某些浏览器(如 chrome)具有防止 Javascript 知道您文件的本地完整路径的安全功能,这作为客户端是有意义的,您不希望服务器知道您本地机器的文件系统。

一个简单的解决方案是只发布文件输入所在的整个表单。

希望能帮助到你。

于 2013-08-01T16:59:47.400 回答