文件上传

Posted 97guoxiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件上传相关的知识,希望对你有一定的参考价值。

package com.sxt.controller;

import java.io.File;
import java.io.IOException;

import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

import com.sxt.utils.RandomStrUtils;

@Controller
@RequestMapping("upload")
public class FileUploadController {

    
    /**
     * 文件上传1
     */
    @RequestMapping("upload01")
    public String upload01(MultipartFile mf,HttpSession session){
        System.out.println(mf);
        System.out.println("文件类型:"+mf.getContentType());
        System.out.println("表单里面的name属性值:"+mf.getName());
        System.out.println("文件名:"+mf.getOriginalFilename());
        System.out.println("文件大小:"+mf.getSize());
        //System.out.println(""+mf.getInputStream());
        
        //1,得到tomcat里面的upload目录
        String realPath=session.getServletContext().getRealPath("/upload/");
        //2,构造文件
        File file=new File(realPath,mf.getOriginalFilename());
        //3,上传
        try {
            mf.transferTo(file);
        } catch (IllegalStateException | IOException e) {
            e.printStackTrace();
        }
        return "../success.jsp";
    }
    
    /**
     * 文件上传2  改名字
     */
    @RequestMapping("upload02")
    public String upload02(MultipartFile mf,HttpSession session){
        String oldName=mf.getOriginalFilename();
        //1,得到tomcat里面的upload目录
        String realPath=session.getServletContext().getRealPath("/upload/");
        String newName=RandomStrUtils.createFileNameUseTime(oldName);
        //2,构造文件
        File file=new File(realPath,newName);
        //3,上传
        try {
            mf.transferTo(file);
        } catch (IllegalStateException | IOException e) {
            e.printStackTrace();
        }
        return "../success.jsp";
    }
    /**
     * 文件上传3  改名字  分文件夹管理
     */
    @RequestMapping("upload03")
    public String upload03(MultipartFile mf,HttpSession session){
        //1,得到老名字
        String oldName=mf.getOriginalFilename();
        //2,得到tomcat里面的upload目录
        String realPath=session.getServletContext().getRealPath("/upload/");
        //3,得到当前时间2020-05-03
        String currentDate=RandomStrUtils.getCurrentDateToStr();
        //4,得到新的父目录的路径  并判断是否存在   如果不存在就创建
        String newRealPath=realPath+"/"+currentDate;
        File parentFile=new File(newRealPath);
        if(!parentFile.exists()){
            parentFile.mkdirs();//创建文件夹
        }
        //5,得到新名字
        String newName=RandomStrUtils.createFileNameUseTime(oldName);
        //6,构造文件
        File file=new File(parentFile,newName);
        //3,上传
        try {
            mf.transferTo(file);
        } catch (IllegalStateException | IOException e) {
            e.printStackTrace();
        }
        return "../success.jsp";
    }
}

 

以上是关于文件上传的主要内容,如果未能解决你的问题,请参考以下文章

将存储在内存中的文件上传到s3

JS创建文件并上传服务器

ajaxFileUpload上传带参数文件及JS验证文件大小

android的自带的httpClient 怎么上传文件

大文件上传下载实现思路,分片断点续传代码实现,以及webUpload组件

如何通过 HttpWebRequest 上传文件?