jQuery $ .post将图像文件发送到servlet

时间:2015-08-18 04:14:53

标签: javascript java jquery ajax servlets

我有test[0].y项目。我想通过ajax将图像文件发送到我的servlet。 Ajax没有将图像文件发送到我的java类。但它正在发送textarea价值。 这是我的表格

javaee

JavaScript函数:

<form enctype="multipart/form-data" beanclass="ActionBean">
    <input type="file" id="uploadFile" name="newAttachment"/>
    <textarea name="name" id="name" rows="2" cols="30"></textarea>
    <s:submit value="Edit" name="saveOfferInfo" onclick="return edit(this);" />

2 个答案:

答案 0 :(得分:0)

使用AJAX无法上传文件,请查看更多详情

  

首先我要说创建一个纯AJAX文件上传   由于JavaScript的安全限制,系统无法实现。   我所知道的所有Ajax上传系统都使用了一些第三方   工具/包或仅模仿AJAX的感觉。即使这样它也会制作文件   上传过程好一点。在下一节中,我将向您介绍一个   模仿AJAX过程但使用普通上传的解决方案   流程和iFrame。

概念:

  • 为文件上传创建一个简单的HTML表单
  • 将目标设置为实际页面上但不可见的iFrame
  • 在表单提交上调用JavaScript函数以显示动画
  • PHP部分完成上传过程后,它会隐藏动画

Read more

如果您不打算使用较旧的浏览器版本并想要为最新的浏览器编码,那么您可以使用FileReader API请参阅Using HTML5 file uploads with AJAX and jQuery

答案 1 :(得分:0)

查看$.serializeArray()的文档,它具体说明了

  

来自文件选择元素的数据未被序列化。

不幸的是,在AJAX中上传文件并不是那么简单。有一个使用直接JQuery的详细教程here。它的要点是你需要:

  1. 将文件输入绑定到change事件处理程序
  2. 收集FormData对象中的所有表单数据
  3. 然后使用$.ajax函数发布表单数据。
  4. 工作太多了?

    或者,如果您不介意在代码中包含插件,可以选择以下选项:

    1. jQuery-Ajax-File-Upload
    2. jquery-form
    3. 或者正如Rohan指出的那样,如果您使用的是HTML5,则可以浏览FileReader API