我遇到以下问题:
当用户上传带有HTML文件输入的文件时,我想要自己接收文件路径。我只得到C:/fakepath/filename.txt
。
据我所知,浏览器知道文件的确切路径是一个安全原因。所以我想知道是否有可能通过一些黑客,某种方式在.net中或使用额外的jquery / js插件来获取文件的完整路径。
为什么
我们不想将文件本身上传到我们的服务器文件系统,也不想上传到数据库。我们只想将本地路径存储在数据库中,这样当同一个用户打开网站时,他就可以点击该路径并打开他的本地文件系统。
对此方法有任何建议或建议吗?
如果真的不可能像
那样How to resolve the C:\fakepath?
How To Get Real Path Of A File Using Jquery
我想我们需要提出一个不同的想法。但由于一些答案真的很老,我想也许现在有一个解决方案。大家好
答案 0 :(得分:1)
您需要在浏览器框外运行自己的代码来执行此操作,因为浏览器的设计不允许这样做。
我的意思是像ActiveX,Flash,COM对象,自定义浏览器扩展或其他花哨的安全漏洞这样丑陋的东西可以打开它自己的OpenFileDialog并在输入字段中插入该值。
答案 1 :(得分:0)
你无法做到。
如果您找到了一种方法,那么浏览器制造商在发现时会修复它的大安全漏洞。
答案 2 :(得分:0)
因为我的目标是使上传的文件名对最终用户可见,然后通过php mail()函数发送,所以我要做的就是解决此问题:
在您的js文件中
旧功能:
var fileuploadinit = function(){
$('#career_resume').change(function(){
var pathwithfilename = $('#career_resume').val();
$('.uploadedfile').html("Uploaded File Name :" + pathwithfilename).css({
'display':'block'
});
});
};
更正的功能:
var fileuploadinit = function(){
$('#career_resume').change(function(){
var pathwithfilename = $('#career_resume').val();
var filename = pathwithfilename.substring(12);
$('.uploadedfile').html("Uploaded File Name :" + filename).css({
'display':'block'
});
});
};
$(document).ready(function () {
fileuploadinit();
});
旧结果:
上传的文件名:C:\ fakepath \ Coverpage.pdf
新结果:
上传的文件名:Coverpage.pdf
希望对您有所帮助:)