Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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
Javascript输入.files[i].url?_Javascript - Fatal编程技术网

Javascript输入.files[i].url?

Javascript输入.files[i].url?,javascript,Javascript,我使用的是一个javscript,它获取用户在上传表单中选择的文件的文件名。但是,我想在他们的PC上抓取文件所在的URL-我该怎么做 我的代码: for (var i = 0; i < input.files.length; i++) { var li = document.createElement("li"); li.innerHTML = input.files[i].name; ul.appendChild(li); } for(var i=0;i

我使用的是一个javscript,它获取用户在上传表单中选择的文件的文件名。但是,我想在他们的PC上抓取文件所在的URL-我该怎么做

我的代码:

for (var i = 0; i < input.files.length; i++) {
    var li = document.createElement("li");
    li.innerHTML = input.files[i].name;
    ul.appendChild(li);
}
for(var i=0;i

它显示input.files[i].name,但我不想要名称-我想要它所在的URL。我该怎么做呢?

这些信息是私人的。浏览器不向JavaScript提供该信息。

没有文件在用户机器上存储位置的URL


此外,不同的浏览器向服务器发送关于文件名的不同信息,有些只发送文件名,有些发送完整路径,因此您不能依赖于获取完整路径。

由于可能存在安全隐患,您不能在Javascript中执行此操作;为了用户的利益,您不能这样做,因此标准没有为您指定访问文件URI的方法

如果您真的需要这个功能,那么您需要使用其他第三方插件(如Java)来实现这一点,尽管我不推荐这样做


嗯,我不是去偷URL——我想显示他们定位的文件的预览(比如,如果他们选择了一个图像,我可以对它进行base32并让它预览)

您无法访问/使用用户的本地文件系统路径。这意味着您不能使用其计算机上文件的真实路径进行预览

如果你需要一个URL/路径来访问文件,你可以创建一个临时的URL来完成这类事情,比如显示图像预览。执行此操作的Javascript方法是:

window.URL.createObjectURL(myObject)
()

下面是一个使用HTML、Javascript和jQuery的图像预览示例

<div id="formContainer">
    <form action="http://example.com" method="POST">
        <input id="imageUploadInput" name="imageUploadInput" type="file" accept="image/*" />
        <button id="submitButton" type="submit">Submit</button>
    </form>
</div>

<div id="imagePreviewContainer">
</div>

<script type="text/javascript">
    $("#imageUploadInput").change(function () {
        var image = this.files[0];
        $("#imagePreviewContainer").innerHTML = '';
        var imgCaption = document.createElement("p");
        imgCaption.innerHTML = image.name;
        var imgElement = document.createElement("img");
        imgElement.src = window.URL.createObjectURL(image);
        imgElement.onload = function () {
            window.URL.revokeObjectURL(this.src);
        };
        $("#imagePreviewContainer").innerHTML = ''; // clear existing content
        $("#imagePreviewContainer").append(imgCaption);
        $("#imagePreviewContainer").append(imgElement);
    });
</script>

提交
$(“#imageUploadInput”).change(函数(){
var image=this.files[0];
$(“#imagePreviewContainer”).innerHTML='';
var imgCaption=document.createElement(“p”);
imgCaption.innerHTML=image.name;
var imgElement=document.createElement(“img”);
imgElement.src=window.URL.createObjectURL(图像);
imgElement.onload=函数(){
window.URL.revokeObjectURL(this.src);
};
$(“#imagePreviewContainer”).innerHTML='';//清除现有内容
$(“#imagePreviewContainer”).append(imgCaption);
$(“#imagePreviewContainer”).append(imgElement);
});

在这里自己尝试一下:

我不想窃取URL-我想显示他们定位的文件的预览(比如,如果他们选择了一幅图像,我可以对其进行base32预览)