$ .ajax()文件上传

$ .ajax()文件上传

问题描述:

如何在jQuery函数$ .ajax()中上传图片?从那以后,我想FileUpload library

来处理它在Servlet这是形式:

<form id="avatarUploadForm" action="upload" method="post" enctype="multipart/form-data"> 
        <input name="data" id="file" type="file"><br> 
        <input id="selectFileButton" type="button" value="Select"><br> 
        <input id="uploadButton" type="button" value="Upload"><br> 
       </form> 

我有$。阿贾克斯()方法:

$('#uploadButton').click(function() { 
    var $form = $('#avatarUploadForm'); 
    var jsonFormData = $form.serializeObject(); 

    $.ajax({ 
     data : { 'file' : jsonFormData }, 
     type : 'POST', 
     contentType : 'multipart/form-data', 
     dataType : 'text', 
     url : 'upload', 
     success: function(){ 
      alert('uploaded'); 
     } 
    }); 
}); 

而且文件上传方法,它必须解析我的请求。这是一个在UploadServlet:

protected void doPost(HttpServletRequest request, 
      HttpServletResponse response) throws ServletException, IOException { 
List items = upload.parseRequest(request); 

如何转换从表单数据到HttpServletRequest的请求?

+1

更具体,以你的问题是什么。 SO不是教程资源,也不是代码编写服务。 – 2012-01-02 14:06:29

+0

你有一般问题!似乎你想学习,当然不是问题!搜索,试试你的自我,如果你有问题,你可以问你是否找不到解决方案。 – 2012-01-02 14:15:14

+0

@ user1048261看到我的帖子在下面,这就是我如何工作 – Guy 2012-01-02 14:21:32

你不能做你用ajax所要求的。 这里是一个很好的引导作用,以上传无需刷新页面,“使用Ajax上传”实现的后的功能

upload-image-using-hidden-iframe

您可以将其加载到画布中,使用toDataURL()方法并发送base64字符串编码值。这将只适用于现代浏览器(因此不适用于较旧的IE)