Java接收formdata格式

使用formdata进行文件上传 以及Java后台如何接收

前端部分:

<div>
<p> 选择文件:<input id="upload_file1" type="file" name="files">
<p> 选择文件:<input id="upload_file2" type="file" name="files">
<input type="button" value="提交" onclick="upload()">
</div>

js部分:

function upload() {
  var formData = new FormData();
  formData.append("file1",
    document.getElementById('upload_file1').files[0]);
  formData.append("file2",
    document.getElementById('upload_file2').files[0]);
  $.ajax({
   url : 'uploadFile',
   type : 'POST',
   data : formData, // 上传formdata封装的数据包
   dataType : 'JSON',
   cache : false, // 不缓存
   processData : false, // jQuery不要去处理发送的数据
   contentType : false, // jQuery不要去设置Content-Type请求头
   success : function(data) { 
    alert("success");
   }
  });
}

Java部分:

@RequestMapping(value = "uploadFile", method = RequestMethod.POST)
 public String uploadFile(HttpServletRequest request,HttpServletRequest response,HttpSession session) {
 	MultipartHttpServletRequest multipartRequest=(MultipartHttpServletRequest) request;  
        MultipartFile multipartFile = multipartRequest.getFile("file1");//file是form-data中二进制字段对应的name
 	System.out.println(multipartFile.getSize());
 	return " ";
 }

  • 17
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
Java 中,可以通过 HttpServletRequest 对象来获取表单数据。如果表单的 enctype 属性设置为 multipart/form-data,则需要使用 Apache Commons FileUpload 库来解析上传的文件和数据。 以下是一个简单的示例代码,演示如何接收 formdata 数据: ```java import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class FormdataReceiver { public static void receive(HttpServletRequest request) { // Check that we have a file upload request boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (!isMultipart) { // This is not a file upload request return; } // Create a factory for disk-based file items DiskFileItemFactory factory = new DiskFileItemFactory(); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); try { // Parse the request List<FileItem> items = upload.parseRequest(request); // Process the uploaded items for (FileItem item : items) { if (item.isFormField()) { // This is a regular form field String fieldName = item.getFieldName(); String fieldValue = item.getString(); // TODO: Process the field value } else { // This is an uploaded file String fieldName = item.getFieldName(); String fileName = item.getName(); String contentType = item.getContentType(); long fileSize = item.getSize(); byte[] fileContent = item.get(); // TODO: Process the file content } } } catch (Exception e) { // Handle the exception } } } ``` 在上面的示例代码中,receive() 方法接收一个 HttpServletRequest 对象作为参数,然后检查请求是否包含表单数据。如果是,则创建一个 DiskFileItemFactory 对象和一个 ServletFileUpload 对象,并使用它们来解析请求。解析后得到的 FileItem 对象可以是普通表单字段或上传的文件。如果是普通表单字段,则可以使用 getFieldname() 和 getString() 方法获取字段名和字段值。如果是上传的文件,则可以使用 getFieldname()、getName()、getContentType()、getSize() 和 get() 方法获取文件名、文件类型、文件大小和文件内容。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值