java ,springMVC处理视频文件上传和下载

上传:

@ResponseBody
@RequestMapping("upload")
public Map upload(HttpServletRequest request, @RequestParam(value = "myFile", required = false) MultipartFile[] files) {
    Map map =new HashMap();
    try {
        for(int i=0;ilength;i++){
            FileUploadUtils.upload(request, files[i]);
        }
        map.put("code","1");
        map.put("msg","上传成功!");
    } catch (Exception e) {
        map.put("code","0");
        map.put("msg","上传失败!");
        e.printStackTrace();
    }

    return map;
}

public class FileUploadUtils {
    //默认大小 50M
    public static final long DEFAULT_MAX_SIZE = 52428800;
    //默认上传的地址
    public static  String defaultBaseDir = "upload";

    public static final String upload(HttpServletRequest request, MultipartFile file)throws Exception{
        String filename = extractFilename(file, defaultBaseDir);
        File desc = getAbsoluteFile(extractUploadDir(request), filename);
        file.transferTo(desc);
        return filename;
    }
    private static final File getAbsoluteFile(String uploadDir, String filename) throws IOException {
        if(uploadDir.endsWith("/")) {
            uploadDir = uploadDir.substring(0, uploadDir.length() - 1);         }
        if(filename.startsWith("/")) {
            filename = filename.substring(0, uploadDir.length() - 1);        }
        System.out.println(uploadDir + "/" + filename);
        File desc = new File(uploadDir + "/" + filename);
        if(!desc.getParentFile().exists()) {
            desc.getParentFile().mkdirs();        }
        if(!desc.exists()) {
            desc.createNewFile();        }
        return desc;
    }

    public static final String extractFilename(MultipartFile file, String baseDir) throws UnsupportedEncodingException {
        String filename = file.getOriginalFilename();
        int slashIndex = filename.indexOf("/");
        if (slashIndex >= 0) {
            filename = filename.substring(slashIndex + 1);
        }
        filename = baseDir + "/" + filename;
        return filename;
    }
    public static final String extractUploadDir(HttpServletRequest request) {
        return request.getServletContext().getRealPath("/");
    }
}


下载:

@ResponseBody
@RequestMapping("getMp4")
public void getMp4(String cateogry,
                    HttpServletRequest request,
                    HttpServletResponse response) throws IOException {

    if(StringUtils.isEmpty(cateogry)) {
        cateogry = "";
    }
    String os = System.getProperty("os.name");
    String path="";
    if(os.toLowerCase().startsWith("win")){
        path="D:/";
    }else{
        path="/home/work/";
    }

    String fileName = path+cateogry;

    File file = new File(fileName);

    //判断文件是否存在如果不存在就返回默认图标
    if(!(file.exists() && file.canRead())) {
        file = new File(path+"company/root.png");
    }

    FileInputStream inputStream = new FileInputStream(file);
    byte[] data = new byte[(int)file.length()];
    int length = inputStream.read(data);
    inputStream.close();
    response.setContentType("video/mpeg4");// 设定输出的类型
    response.setHeader("Content-Disposition", "attachment;filename="  + fileName);

    OutputStream stream = response.getOutputStream();
    stream.write(data);
    stream.flush();
    stream.close();
}

你可能感兴趣的:(java ,springMVC处理视频文件上传和下载)