繁体   English   中英

通过带有jQuery Easy ui的ajax上传文件

[英]upload file via ajax with jquery easy ui

我正在尝试使用户能够使用jQuery EasyUI表单小部件从位于其计算机上的文件中导入数据:

<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字符串,因此无法获取文件在用户计算机上的真实路径。 有人知道我该如何解决这个问题?

谢谢

尝试了此插件http://malsup.com/jquery/form/#getting-started

该插件提供了一种称为AjaxSubmit()的方法,可以很好地上传图像。 我在2011年使用过它。

IE(旧版本,例如6,7)中存在一些问题。 您需要编写一些技巧。 在后端Firefox和IE上载正确的文件流格式(如Data/Image但在Chrome(Webkit)中,您将获得八位字节流。 您需要解析服务器上的文件格式,以检查文件是否正确。

我不知道你的form()函数做什么,因为jQuery中没有这样的方法,但是将文件上传到服务器的通常方法是这样的:

$('#my_file').on('change', function() {
    $.ajax({
        url  : [url_to_call],
        data : new FormData($('#my_form').get(0)),
        processData: false,
        contenttype: false
    }).done(function(param) {
        param.file_path = file_name;
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM