[整理]WebUploader + SpringMVC 实现多文件断点续传之一 多文件上传

PM要做一个文件上传的Web需要支持大文件断点续传,调查了一下决定使用Baidu的WebUploader控件实现。

1、多图片上传

前端JSP

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>


    
        文件上传
        
        
        
    
    
        
选择文件
后端Controller

import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
@Controller
@RequestMapping(value = "/fileUpload")
public class FileUploadController extends BaseController {
    /** 日志记录 */
    private static Logger logger = Logger.getLogger(FileUploadController.class);
   
    /**
     * 保存上传文件
     * 
     * @Title: upload
     * @Description: 保存前端使用Webuploader未进行分片处理上传的文件
     * @param request HttpServletRequest
     * @param response HttpServletResponse
     * @param session HttpSession
     */
    @RequestMapping(value = "/upload")
    public void upload(HttpServletRequest request, HttpServletResponse response, HttpSession session) {
        

        // 获得文件保存目录
        String savePath = ""; // 这里是你要保存文件的目录

        // 转换请求对象得到文件对象
        MultipartHttpServletRequest Murequest = (MultipartHttpServletRequest) request;
        Map files = Murequest.getFileMap();

        String fileName;
        File tagetFile;

        // 获得文档保存目录
        File dir = new File(savePath);
        if (!dir.exists()) {
            dir.mkdirs();
        }

        // 保存文档
        for (MultipartFile file : files.values()) {
            fileName = file.getOriginalFilename();
            // 创建文件对象
            tagetFile = new File(savePath + File.separator + fileName);
            // 目标文件创建
            if (!tagetFile.exists()) {
                try {
                    tagetFile.createNewFile();
                } catch (IOException e) {
                    logger.error("创建目标文件时出错:" + e.getMessage());
                    e.printStackTrace();
                }
            }

            // 保存文件
            try {
                file.transferTo(tagetFile);
            } catch (IllegalStateException e) {
                logger.error("复制时出错:" + e.getMessage());
                e.printStackTrace();
            } catch (IOException e) {
                logger.error("复制时出错:" + e.getMessage());
                e.printStackTrace();
            }
        }
    }
}

你可能感兴趣的:(前端,后端)