ファイルのダウンロード簡単な例についてspringboot

基本原則ここに画像を挿入説明
実装手順

フロントページ

説明:ファイルのアップロード注:
1.リクエストがPOST行われるべき
2.enctypeは、マルチパート/フォームのデータでなければなりません
使用して3. INPUTファイルの種類

<form action="/multiUpload" method="post" enctype="multipart/form-data">
    <input type="file" name="file" value="请选择上传文件-1">
    <input type="file" name="file" value="请选择上传文件-2">
    <input type="submit" value="上传文件">
</form>

バックエンドのコード

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.UUID;

@Controller
public class MultiUpLoadFileController {

    @PostMapping(value = "multiUpload")
    @ResponseBody
    public String uploadFile(@RequestParam("file") MultipartFile[] multipartFiles, HttpServletRequest req){
        System.out.println("MultiUpLoadFileController===" + multipartFiles.length);
        String path = req.getServletContext().getRealPath("/uploadFile/");
        //用日期生成文件夹
        LocalDate date = LocalDate.now();
        DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        String formate_date = format.format(date); //2019-07-01

        //创建目录
        File folder = new File(path,formate_date);
        if( !folder.isDirectory()){
            folder.mkdirs();
        }

        StringBuilder builder = new StringBuilder();
        String ret = "";
        for(MultipartFile mulfile : multipartFiles ){
            //处理文件:需要重新命名文件。UUID标识文件
            String uuid = UUID.randomUUID().toString().replaceAll("-","");
            //上传的文件名称 a.png
            String oldName = mulfile.getOriginalFilename();
            if (null == oldName || "".equals(oldName)) {
                continue;
            }
            //生成新的文件名称 : uuid + 原来文件的扩展名 png
            String newName = uuid + oldName.substring( oldName.indexOf("."), oldName.length());

            try{
                //创建保存到服务器磁盘的文件对象
                File outFile = new File(folder,newName);
                //把上传文件保存到outFile中
                mulfile.transferTo(outFile);

                //拼接文件的路径
                ret = req.getScheme()+"://" + req.getServerName() + ":"
                        + req.getServerPort() +"/uploadFile/" + formate_date +"/" + newName;


            }catch(Exception e){
                e.printStackTrace();
                ret = "文件上传失败";
            }
            builder.append(ret).append(",");
        }
        return builder.toString();
    }
}

ダウンロードプロファイルの設定パラメータのapplication.properties

#设置上传的文件参数
#是否支持文件上传,默认是true
spring.servlet.multipart.enabled=true
#上传文件的临时目录,需要自定义目录
spring.servlet.multipart.location=file
#上传文件的单个最大值。
spring.servlet.multipart.max-file-size=1MB
#上传多个文件总的最大值。
spring.servlet.multipart.max-request-size=10MB
#把上传的文件写入到磁盘,可以设置为内存
spring.servlet.multipart.file-size-threshold=0```

公開された27元の記事 ウォンの賞賛1 ビュー863

おすすめ

転載: blog.csdn.net/weixin_44971379/article/details/103797592