【发布时间】:2013-11-28 18:06:47
【问题描述】:
我试图让用户可以使用jQuery EasyUI form widget从位于他们计算机上的文件中导入数据:
<form id="my_form" method="POST">
<input type="file" name="my_file" id="my_file" />
</form>
var file_name = $('#my_file').val();
if(file_name)
{
$('#my_form').form('submit', {
url: [url_to_call],
onSubmit: function(param){
param.file_path = file_name;
}
});
}
然后,当用户在他/她的计算机上浏览文件时,我想将路径发送到 jQuery ajax 查询以执行一些上传操作。我遇到的问题是filename 返回如下内容:
C:\fakepath\[name_of_file]
由于fakepath 字符串,我无法获得用户计算机上文件所在位置的真实路径。请问有人知道如何解决这个问题吗?
谢谢
【问题讨论】:
-
你不能真正用 ajax 上传文件,你必须上传一个 formData 对象,或者对于不支持的浏览器使用 iframe。
-
@adeneo 不,我已经在我的一个支持 IE7+ 上传图像的应用程序中实现了 Ajax 上传。我在上传后向他们展示图像预览(没有页面刷新)。
-
为什么不用谷歌?对于 ajax 和文件上传爱好者来说,这可能是最常问的问题之一
-
@KingAnirudhaIII - 那是完全不同的东西,它是显示来自用户计算机的图像的 HTML5 文件 API,没有人说你必须重新加载页面,但你不能从直接输入文件,您必须上传包含图像文件的formData对象或使用iframe在不支持formData的浏览器中提交表单。
标签: javascript html jquery jquery-easyui