显示所选文件而不回发
我有一个 ,用户选择一个图像文件。 是否可以在页面上显示此图像而无需先将其实际上传到服务器? 基本上我想要做的是使用用户计算机上的本地文件。
PS – 我正在使用JQuery。
这是不可能的,即使使用file://
引用文件也不会起作用,因为从文件输入框中获取值时,您只获取文件名,而不是路径。 因此无法知道图像的位置。 要使其工作,您必须使用基于Flash的上传器。
这肯定是一种安全措施,因为Internet Explorer 确实为您提供了路径,唯一的事情是它始终是c:\fakepath\filename.png
。 我猜浏览器正在阻止JavaScript从文件系统中获取任何有意义的信息。
尝试上传文件C:\test.txt
时不同浏览器的返回值:
-
Firefox 3.5.6
test.txt
-
Chrome 3.0.195.38
test.txt
-
Opera 10.00
C:\fake_path\test.txt
-
Internet Explorer 8
C:\fakepath\test.txt
不,这是不可能的。 Javascript无权访问本地文件系统。
您要求的是一个巨大的安全风险伪装成“function请求”。 如果可能,那么javascript也可以从本地计算机打开其他类型的文件。 例如MS Word文档 – 您知道可以运行脚本的文件。
在Javascript中不可靠。 可以使用像这样的基于Flash的上传器。
:-),我认为这很容易。
document.getElementByid('img1').src = document.getElementById('fileUpload').value;
但这在所有浏览器中都不可能
在Internet Explorer中可以使用,但是您的用户必须将您的站点添加到“可信站点”,或者您将看到C:\ fakepath \。 一旦添加到可信站点,您就可以访问真实路径。
不要指望找到一个很棒的跨浏览器解决方案!