文件上传

前端上传文件,在Controller获取源文件名称与类型,对其进行修改,重建名字保存在数据库中。
需要时作为实体类对象的一个属性传递给前端。

静态原型:

<input type="file" name="?">
//表单文件上传需要确定enctype的属性和method属性
<form enctype="multipart/form-date" method="post">	
  1. 文件重命名:对文件的重命名。使用UUID
  2. 获取文件的真实名称
  3. 获取URL地址映射的真实路径,动态获取img目录的物理路径
  4. 编写工具类FileUtil
public class FileUtil {



    /*
            * @Description: TODO
            * @Param:  无
            * @Return: 重命名的文件
            * @Throws
            **/

    public static String ReFileName(){
        return UUID.randomUUID().toString().replace("-","");

    }


    /*
            * @Description: 获取文件格式
            * @Param:  	文件名字
            * @Return:  文件格式
            * @Throws
            **/

    public static String RealFileName(String realName){

        return realName.substring(realName.lastIndexOf("."));
    }
}

使用Part对象接受文件上传

  1. 需要servlet3.1并且tomcat8
  2. 在类上加 @MultipartConfig注解
        Collection<Part> parts = request.getParts();
        //图片上传
        Part part = request.getPart("workerImage");
        //获取文件真实名称
        String realFileName = part.getSubmittedFileName();
        System.out.println("文件真实名称"+realFileName);

        //获取随机名称
        String saveFileName = FileUtil.ReFileName();
        System.out.println("保存文件名称"+saveFileName);

        //获取文件后缀
        String saveTypeName = FileUtil.RealFileName(realFileName);
        System.out.println("保存后缀名称"+saveTypeName);

        //获取修改后的文件名称
        String workerImg = saveFileName+saveTypeName;
        System.out.println("保存图片名称"+workerImg);

        //获取URL对应的物理路径
        String realPath = request.getServletContext().getRealPath("/images/");
        System.out.println("保存物理路径"+realPath);

        //调用方法实现另存
        part.write(realPath+workerImg);
        System.out.println("Controller"+worker);
        worker.setWorkerImage(workerImg);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值