java文件上传类

时间:2020-05-09 21:42:22 类型:JAVA
字号:    

JAVA文件上传是我们网络操作经常使用的一个功能,但因代码较多,每个上传都重复写, 会显得非常麻烦,所以这里形成一个类,方便我们重复使用


一. Java源生上传文件

package utils;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.Part;
import java.io.File;
import java.util.Properties;
import java.util.UUID;

public class UploadFile {
    //返回上传文件的名字
    public static  String getFileName(HttpServletRequest request,String filedName){
        //得到上传文件开始
        String pic = "";
        try{
            Part file = request.getPart(filedName);
            String fileName = file.getSubmittedFileName();
            String ext      = fileName.substring(fileName.lastIndexOf("."));
            // String filePath = request.getServletContext().getRealPath("/")+"upload";
            //从配置文件读取目录
            Properties props = PropertiesGet.getResult("/config.properties");
            String filePath = props.getProperty("uploads");
            File uploadDir = new File(filePath);
            if(!uploadDir.exists()){
                uploadDir.mkdirs();
            }
            pic = UUID.randomUUID().toString() + ext; //上传文件后的文件名
            String fileUploadPath = uploadDir + File.separator + pic;
            file.write(fileUploadPath);
        }
        catch (Exception e){
            System.out.println(e.getMessage());
        }
        return pic;
    }
}

调用方法如下:

String pic = UploadFile.getFileName(request,"pic");

源代码下载:

UploadFile.zip


二. SpringMVC上传类

 1.  需要将 commons-fileupload 组件相关的 JAR(commons-fileupload-1.3.1.jar 和 commons-io-2.4.jar)复制到 Spring MVC 应用的 WEB-INF/lib 目录下

  2. Springmvc-servlet.xml里面做配置


<!-- 配置MultipartResolver,用于上传文件,使用spring的CommonsMultipartResolver -->

<bean id="multipartResolver"

class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

<property name="maxUploadSize" value="5000000" />

<property name="defaultEncoding" value="UTF-8" />

</bean>

package tool;

import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.Properties;
import java.util.UUID;

public class UploadFile {
    public static String getFileName(MultipartFile file){

        if(!file.isEmpty()){
            String fileName = file.getOriginalFilename();
            String ext      = fileName.substring(fileName.lastIndexOf("."));
            String pic      = UUID.randomUUID().toString() + ext;
            try {
                Properties prop = GetProperties.getResult("/config.properties");
                String upload = prop.getProperty("upload");
                File targetFile = new File(upload, pic);
                if (!targetFile.exists()) {
                    targetFile.mkdirs();
                }
                try {
                    file.transferTo(targetFile);
                    return pic;
                } catch (IOException e) {
                    e.printStackTrace();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
        return "";
    }
}


<