如何在更改<;时获取所选文件的完整路径;输入类型=‘;文件’&燃气轮机;使用javascript、jquery和ajax?
如何使用如何在更改<;时获取所选文件的完整路径;输入类型=‘;文件’&燃气轮机;使用javascript、jquery和ajax?,javascript,jquery,file-upload,filepath,Javascript,Jquery,File Upload,Filepath,如何使用 函数getFilePath(){ $('input[type=file]')。更改(函数(){ var filePath=$('#fileUpload').val(); }); } 但是filePath变量只包含所选文件的名称,而不是完整路径 我在网上搜索了它,但出于安全原因,浏览器(FF、chrome)似乎只给出了文件名。 是否有其他方法获取所选文件的完整路径?您不能这样做-出于安全考虑,浏览器将不允许这样做 使用输入类型=文件对象选择文件时,值 value属性的值取决于“Inc
函数getFilePath(){
$('input[type=file]')。更改(函数(){
var filePath=$('#fileUpload').val();
});
}
但是filePath变量只包含所选文件的名称,而不是完整路径我在网上搜索了它,但出于安全原因,浏览器(FF、chrome)似乎只给出了文件名。
是否有其他方法获取所选文件的完整路径?您不能这样做-出于安全考虑,浏览器将不允许这样做 使用输入类型=文件对象选择文件时,值 value属性的值取决于“Include local”的值 将文件上载到服务器时的目录路径“的安全设置” 用于显示包含输入的网页的安全区域 反对 仅返回所选文件的完全限定文件名 启用此设置时。禁用该设置后,Internet Explorer 8将本地驱动器和目录路径替换为字符串 C:\fakepath\以防止不适当的信息披露 和其他 你错过了
)代码>这在更改事件函数的末尾
也不要为更改事件创建函数,只需按如下方式使用它
<script type="text/javascript">
$(function()
{
$('#fileUpload').on('change',function ()
{
var filePath = $(this).val();
console.log(filePath);
});
});
</script>
$(函数()
{
$('#fileUpload')。on('change',function()
{
var filePath=$(this.val();
log(文件路径);
});
});
你不应该这样做。。。我认为在最新的浏览器中尝试是没有用的(据我所知)。。。另一方面,所有最新的浏览器都不允许这样做
您可以通过一些其他链接找到解决方法,如获取服务器端的值,但不在客户端(javascript)中
出于安全原因,浏览器不允许这样做,即浏览器中的JavaScript无法访问文件系统,但是使用HTML5文件API,只有Firefox提供mozFullPath
属性,但如果您尝试获取该值,它将返回空字符串:
$('input[type=file]').change(function () {
console.log(this.files[0].mozFullPath);
});
所以不要浪费你的时间
编辑:如果需要文件的路径来读取文件,可以使用API。这里有一个关于SO的相关问题:你不能。
安全阻止你知道任何关于客户端计算机的文件系统-它甚至可能没有!它可能是一台MAC电脑、一台PC、一台平板电脑或一台支持互联网的冰箱——你不知道、不知道、也不会知道。让您拥有完整的路径可以为您提供有关客户端的一些信息,特别是如果它是一个网络驱动器
事实上,您可以在特定条件下获得它,但它需要ActiveX控件,并且在99.99%的情况下无法工作
无论如何,您都无法使用它将文件还原到原始位置(因为您完全无法控制下载的存储位置,甚至无法控制下载的存储位置),因此在实践中,它对您也没有多大用处。尝试以下方法:
它将为您提供一个临时路径,而不是精确的路径,如果您希望像本JSFIDLE示例中那样显示选定的图像,可以使用此脚本(通过选择图像以及其他文件来尝试):-
代码如下:-
HTML:-
<input type="file" id="i_file" value="">
<input type="button" id="i_submit" value="Submit">
<br>
<img src="" width="200" style="display:none;" />
<br>
<div id="disp_tmp_path"></div>
JS:-
$('i#u文件')。更改(函数(事件){
var tmppath=URL.createObjectURL(event.target.files[0]);
$(“img”).fadeIn(“fast”).attr('src',URL.createObjectURL(event.target.files[0]);
$(“disp#tmp_path”).html(“临时路径(复制它并尝试在浏览器地址栏中粘贴它)-->[“+tmppath+”]”;
});
这不完全是你想要的,但可能在某个地方对你有帮助。你是说这个吗
$('#i_file').change( function(event) {
var tmppath = URL.createObjectURL(event.target.files[0]);
$("img").fadeIn("fast").attr('src',tmppath);
});
您可以使用以下代码获取上载文件的工作本地URL:
<script type="text/javascript">
var path = (window.URL || window.webkitURL).createObjectURL(file);
console.log('path', path);
</script>
var path=(window.URL | | window.webkitURL).createObjectURL(文件);
log('path',path);
如果您可以选择上载整个文件夹,则可以
<input type="file" webkitdirectory directory multiple/>
但它不包含整个绝对路径,只包含相对路径。Firefox中也支持。file元素具有和数组调用文件
它包含您需要的所有必要内容
var file = document.getElementById("upload");
file.addEventListener("change", function() {
for (var i = 0; i < file.files.length; i++) {
console.log(file.files[i].name);
}
}, false);
var file=document.getElementById(“上传”);
addEventListener(“change”,function()){
对于(var i=0;i
您只能通过IE11和MS Edge获取要上载的选定文件的完整路径
var fullPath = Request.Form.Files["myFile"].FileName;
一个有趣的注意事项是:虽然这在web上不可用,但如果您在Electron中使用JS,那么您可以这样做
使用标准HTML5文件输入,您将在所选文件上收到一个额外的path
属性,其中包含真实的文件路径
此处的完整文档:可以使用FileReader API更改img元素的src
@nauphal感谢您的评论,但是还有其他方法可以获取所选文件的完整路径吗?如果您希望获取服务器上文件的路径(例如,为要在服务器上运行的命令行实用程序构建web界面),则始终可以构建相对路径,以s的形式发送,并使用树小部件或提前键入,让用户选择它,然后让服务器处理该文件。可能重复了您的代码,但它给了我错误的路径。我的文件在D
目录中,但值是C:\fakepath\test.xls
C:\fakepath\fileName.xls。。。有人知道如何解决这个问题吗?这就是这个问题的关键所在,伙计们:它永远不会显示实际路径,并且总是放C:\fakepath\
,有没有其他文件类型的方法可以做到这一点:pdf、docx等,而不是图像
.target.files[...].webkitRelativePath: "FOLDER/FILE.ext"
var file = document.getElementById("upload");
file.addEventListener("change", function() {
for (var i = 0; i < file.files.length; i++) {
console.log(file.files[i].name);
}
}, false);
var fullPath = Request.Form.Files["myFile"].FileName;