如何获得文件的完整路径,同时选择文件使用<input type= ' file ' >

<input type="file" id="fileUpload">
<script type="text/javascript">
function getFilePath(){
     $('input[type=file]').change(function () {
         var filePath=$('#fileUpload').val(); 
     });
}
</script>

但是filePath var只包含所选文件的名称,而不是完整的路径。 我在网上搜索了一下,但似乎出于安全原因,浏览器(FF,chrome)只给出了文件的名称。 是否有其他方法获得所选文件的完整路径?


当前回答

一个有趣的提示:虽然这在网上是不可用的,如果你在Electron中使用JS,那么你可以这样做。

使用标准的HTML5文件输入,您将在所选文件上收到一个额外的path属性,其中包含真正的文件路径。

完整的文档在这里:https://github.com/electron/electron/blob/master/docs/api/file-object.md

其他回答

只能通过IE11和MS Edge获取上传文件的完整路径。

var fullPath = Request.Form.Files["myFile"].FileName;

可以,如果你可以选择上传整个文件夹的话

<input type="file" webkitdirectory directory multiple/>

更改事件将包含:

.target.files[...].webkitRelativePath: "FOLDER/FILE.ext"

但它不包含整个绝对路径,只包含相对路径。Firefox也支持。

你可以使用下面的代码来获取上传文件的本地URL:

<script type="text/javascript">    
    var path = (window.URL || window.webkitURL).createObjectURL(file);
    console.log('path', path);
</script>

一个有趣的提示:虽然这在网上是不可用的,如果你在Electron中使用JS,那么你可以这样做。

使用标准的HTML5文件输入,您将在所选文件上收到一个额外的path属性,其中包含真正的文件路径。

完整的文档在这里:https://github.com/electron/electron/blob/master/docs/api/file-object.md

这对我来说是个可行的解决方案

const path = (window.URL || window.webkitURL).createObjectURL(file);

它将返回一个blob URL以本地访问该文件。