com.mmj.app.web.controller.upload.FileUploadController.java Source code

Java tutorial

Introduction

Here is the source code for com.mmj.app.web.controller.upload.FileUploadController.java

Source

/*
 * Copyright 2011-2016 MSUN.com All right reserved. This software is the confidential and proprietary information of
 * MSUN.com ("Confidential Information"). You shall not disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into with MSUN.com.
 */
package com.mmj.app.web.controller.upload;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.context.request.async.DeferredResult;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;

import com.google.gson.Gson;
import com.mmj.app.common.cons.ResultCode;
import com.mmj.app.common.result.JsonResultUtils.DefaultJsonResult;
import com.mmj.app.common.result.Result;
import com.mmj.app.common.velocity.CustomVelocityLayoutView;
import com.mmj.app.web.controller.BaseController;
import com.mmj.app.web.vo.ImgVO;

/**
 * file upload
 * 
 * @author zxc Jun 30, 2014 3:09:36 PM
 */
@Controller
public class FileUploadController extends BaseController {

    // /link/pic/upload ?,
    // "imgUrl":"http://img1.chouti.com/group10/M03/01/7F/wKgCNlR5-yfAnjjwAAHMGsSZkHk908=420x185.jpg",
    // "identifie":"1417280287366"
    // <html><head><script
    // type='text/javascript'>document.domain='chouti.com'</script></head><body>{"result":{"code":"9999",
    // "message":"?",
    // "data":{"imgUrl":"http://img1.chouti.com/group10/M01/C7/B1/wKgCNlSLCA2SPFfIAAHMGsSZkHk134=420x185.jpg","identifie":"1418397705196"}}}
    // </body></html>
    @RequestMapping(value = "/link/pic/upload")
    public ModelAndView picUpload(String identifie, @RequestParam("imgUrl") MultipartFile... files) {
        ModelAndView mav = new ModelAndView("return");
        mav.getModel().put(CustomVelocityLayoutView.USE_LAYOUT, "false");

        if (files == null || files.length <= 0) {
            return returnErrorJson(mav);
        }
        List<String> urlList = new ArrayList<String>();
        for (int i = 0; i < files.length; i++) {
            Result result = fileService.createFilePath(files[i]);
            if (result == null || result.getData() == null) {
                return returnErrorJson(mav);
            }
            urlList.add((String) result.getData());
        }
        String imgUrl = urlList.get(0);
        String[] urlArray = StringUtils.split(imgUrl, ".");
        imgUrl = urlArray[0] + "=420x185" + "." + urlArray[1];
        logger.error("FileUploadController : picUpload url:" + imgUrl);
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("result", new DefaultJsonResult(9999, "?", new ImgVO(imgUrl, identifie)));
        mav.addObject("json", new Gson().toJson(map));
        return mav;
    }

    private ModelAndView returnErrorJson(ModelAndView mav) {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("result", new DefaultJsonResult(0000, "", ""));
        mav.addObject("json", new Gson().toJson(map));
        return mav;
    }

    @RequestMapping(value = "/ajaxUpload.htm", headers = "accept=*/*", produces = "application/json", method = RequestMethod.POST)
    @ResponseBody
    public DeferredResult<String> ajaxUpload(String a, @RequestParam("upload") MultipartFile... files) {
        DeferredResult<String> deferredResult = new DeferredResult<String>();
        if (files == null || files.length <= 0) {
            deferredResult.setResult("-1");
            return deferredResult;
        }
        List<String> urlList = new ArrayList<String>();
        for (int i = 0; i < files.length; i++) {
            Result result = fileService.createFilePath(files[i]);
            if (result == null || result.getData() == null) {
                deferredResult.setResult("IOError");
                return deferredResult;
            }
            urlList.add((String) result.getData());
        }
        deferredResult.setResult(urlList.get(0));
        return deferredResult;
    }

    private String returnFileResult(String code, String msg, String url) {
        Map<String, String> map = new HashMap<String, String>();
        map.put("error", code);
        map.put("message", msg);
        map.put("url", url);
        return new Gson().toJson(map);
    }

    @RequestMapping(value = "/uploadPublish.htm", headers = "accept=*/*", produces = "application/json", method = RequestMethod.POST)
    @ResponseBody
    public DeferredResult<String> uploadPublish(String a, @RequestParam("files") MultipartFile... files) {
        DeferredResult<String> deferredResult = new DeferredResult<String>();
        if (files == null || files.length <= 0) {
            deferredResult.setResult(returnFileResult("1", "", ""));
            return deferredResult;
        }
        List<String> urlList = new ArrayList<String>();
        for (int i = 0; i < files.length; i++) {
            Result result = fileService.createFilePath(files[i]);
            if (result == null || result.getData() == null) {
                deferredResult.setResult(returnFileResult("1", "", ""));
                return deferredResult;
            }
            urlList.add((String) result.getData());
        }
        String imgUrl = urlList.get(0);
        String[] urlArray = StringUtils.split(imgUrl, ".");
        imgUrl = urlArray[0] + "=420x185" + "." + urlArray[1];
        deferredResult.setResult(returnFileResult("0", "?", imgUrl));
        return deferredResult;
    }

    @RequestMapping(value = "/uploadFile.htm")
    public ModelAndView uploadFile(@RequestParam("files") MultipartFile... files) {
        if (files == null || files.length <= 0) {
            return createFileJsonMav(ResultCode.ERROR, "", null);
        }
        List<String> urlList = new ArrayList<String>();
        for (int i = 0; i < files.length; i++) {
            Result result = fileService.createFilePath(files[i]);
            if (result == null || result.getData() == null) {
                return createFileJsonMav(ResultCode.ERROR, "", null);
            }
            urlList.add((String) result.getData());
        }
        return createFileJsonMav(ResultCode.SUCCESS, "?", urlList.get(0));
    }

    @RequestMapping("/doUploads.htm")
    public ModelAndView filesUpload(@RequestParam("files") MultipartFile... files) {
        Result result = null;
        if (files != null && files.length > 0) {
            for (int i = 0; i < files.length; i++) {
                MultipartFile file = files[i];
                result = fileService.createFilePath(file, file.getOriginalFilename());
            }
        }
        if (result == null || result.getData() == null) {
            return createFileJsonMav(ResultCode.ERROR, "", null);
        }
        return createFileJsonMav(ResultCode.SUCCESS, "?", result.getData().toString());
    }

    @RequestMapping("/doUpload.htm")
    public ModelAndView fileUpload(@RequestParam("file") MultipartFile file) {
        Result result = null;
        if (!file.isEmpty()) {
            result = fileService.createFilePath(file, file.getOriginalFilename());
        }
        if (result == null || result.getData() == null) {
            return createFileJsonMav(ResultCode.ERROR, "", null);
        }
        return createFileJsonMav(ResultCode.SUCCESS, "?", result.getData().toString());
    }

    @RequestMapping(value = "/fileUpload.htm")
    public String index() {
        return "upload";
    }
}