chrome和个性化的javascript文件上传

时间:2013-08-01 16:51:42

标签: javascript

我对文件上传进行了个性化,这在所有浏览器中都很有效,但是,当我在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>

以上是我的代码,也许我错过了什么?任何想法?

2 个答案:

答案 0 :(得分:0)

如果要上传文件,则至少需要在表单标记上使用方法和类型属性:

<form method="POST" type="multipart/form-data">

答案 1 :(得分:0)

您遇到的问题是某些浏览器(如chrome)具有一个安全功能,可以防止Javascript知道您的文件的本地完整路径,这对客户端来说很有意义,您不希望服务器知道您的本地计算机的文件系统。

一个简单的解决方案就是发布您的fileinput所在的整个表单。

希望它有所帮助。