当前位置: 主页 > JAVA语言

java图片上传文件流-小编目前工作内容上传文件的几种方式,屡屡自己的思路

发布时间:2023-07-12 10:02   浏览次数:次   作者:佚名

一、引言

小编目前工作内容属于和第三方做接口对接,突然调换到开发产品组,需要做一个拍照上传身份证照片到后台识别的功能。一个很简单的功能,当我做到需要上传图片到后台的时候,突然感觉对上传文件的思路很乱,不知该使用什么方式来实现。所以今天小编我来总结上传文件的几种方式,屡屡自己的思路。

二、常用的几种方式

1、使用form表单提交

这种方式是最简单明了的,直接用表单提交。记得添加enctype属性哟,这个属性是指定form表单在向服务器提交之前,对表单数据如何进行编码。 文件域中的name="file"属性的值,需要和后台接收的对象名一致,不然接收不到的。

2、使用ajax提交文件

在项目当中难免避免异步提交文件,或者是需要局部刷新,这个时候我们就需要使用到ajax来实现。

使用ajax提交首先引入jquery-form.js文件才能实现,接着使用上面的html代码,加入以js则可以实现ajax提交文件

3、使用FormData对象

如果不想引入其他js文件,那就使用这种方式吧java图片上传文件流,也是通过ajax的形式上传。

/**
 * 使用FormData
 */
$("#ormdatasub").click(function(){
    var formdata = new FormData($("#domeform")[0]);
    $.ajax({
        url: "/api/fileupload/dome1",
        type: "POST",
        data:formdata,
        dataType: "json",
        processData: false,  // 告诉jQuery不要去处理发送的数据
        contentType: false,   // 告诉jQuery不要去设置Content-Type请求头
        success: function (res) {
        }
    })
}) 

4、后台接收文件,框架采用的Spring Boot框架,因为该框架搭建很方便所以采用这个框架写例子。

package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
@Controller
@RequestMapping(value = "/api/fileupload")
public class FileuploadController {
    /**
     * 用于接收前端上传文件
     * @param request
     * @param file
     */
    @RequestMapping(value = "dome1", method = RequestMethod.POST)
    public void dome1(HttpServletRequest request, MultipartFile file) throws Exception{
        //file对象名记得和前端name属性值一致
        System.out.println(file.getOriginalFilename());
    }
}

有需要整个dome的点击这里进行下载java图片上传文件流,后期遇到常用的上传文件的方式,也会即使更新。