我有以下HTML标记:
用户选择文件,我想在图像大小内预览此文件为onchange事件:
$(document).ready(function(){
$("#bigPicture").change(function() {
alert($("#bigPicture").val());
$("#test1").attr("src",$("#bigPicture").val());
});
});
我有非常奇怪的行为:
1)尽管我使用的是Ubuntu计算机+谷歌浏览器,但我得到C:\fakepath\\[file name]
警报。
2)我的文件未加载到img标签中。
3)在FireFox上我只有[filename]警报没有路径。并且图像也不会被渲染。
我做错了吗? 这些浏览器是否存在某种安全限制?
答案 0 :(得分:2)
http://dev.w3.org/html5/spec/Overview.html#file-upload-state
由于历史原因,IDL值 属性前缀为文件名 字符串“C:\ fakepath \”。一些遗产 用户代理实际上包括完整 路径(这是一个安全 漏洞)。
<强>文件名强>
获取时,必须返回字符串 “C:\ fakepath \”后跟着 列表中第一个文件的文件名 所选文件(如果有)或 如果列表为空,则为空字符串。上 设置,如果新值为空 字符串,它必须清空列表 选定的文件;否则,它必须 抛出INVALID_STATE_ERR异常。
答案 1 :(得分:1)
我认为您可以使用基于文件的URI,例如file:/// c:/test/test.jpeg。
或者如果文件是本地文件,您可以将其作为提供html的相对路径。