Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
chrome和个性化javascript文件上传_Javascript - Fatal编程技术网

chrome和个性化javascript文件上传

chrome和个性化javascript文件上传,javascript,Javascript,我对文件上传进行了个性化处理,这在所有浏览器中都非常有效,然而,当我在chrome中测试它时,它添加了“c:\fakepath\”。所以我在网上的某个地方读到了替换路径的内容,所以我读了,现在的问题是,文件没有上传到我的服务器,路径发生了变化,但文件无法上传 <script language="JavaScript" type="text/javascript"> function BrowseClick() { var fileinput = document.getEle

我对文件上传进行了个性化处理,这在所有浏览器中都非常有效,然而,当我在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>

函数BrowseClick()
{
var fileinput=document.getElementById(“图片”);
fileinput.click();
}
函数changebrowse()
{
var fileinput=document.getElementById(“图片”);
var textinput=document.getElementById(“picture2”);
textinput.value=fileinput.value.replace(“C:\\fakepath\\”,“”);
}
测试

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

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

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

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

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

希望有帮助。

是的,我的代码中有。