Package com.sogou.qadev.service.cynthia.controller

Source Code of com.sogou.qadev.service.cynthia.controller.FileUploadController

package com.sogou.qadev.service.cynthia.controller;

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

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.alibaba.fastjson.JSON;
import com.sogou.qadev.service.cynthia.bean.Attachment;
import com.sogou.qadev.service.cynthia.bean.FileBean;
import com.sogou.qadev.service.cynthia.factory.DataAccessFactory;
import com.sogou.qadev.service.cynthia.service.DataAccessSession;

/**
* @description:file processor
* @author:liming
* @mail:liming@sogou-inc.com
* @date:2014-5-6 下午5:11:27
* @version:v1.0
*/
@Controller
@RequestMapping("/file")
public class FileUploadController extends BaseController{

  /**
   * @description:upload file
   * @date:2014-5-6 下午5:11:37
   * @version:v1.0
   * @param request
   * @param response
   * @throws Exception
   */
  @RequestMapping("/upload.do")
  public void upload(HttpServletRequest request, HttpServletResponse response) throws Exception {
   
    DataAccessSession das = DataAccessFactory.getInstance().getSysDas();
   
    request.setCharacterEncoding("UTF-8");
   
    final long MAX_SIZE = 500*1024*1024;
   
    DiskFileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
   
    upload.setHeaderEncoding("UTF-8");
   
    upload.setFileSizeMax(MAX_SIZE);
   
    List<FileBean> allFileBean = new ArrayList<FileBean>();
   
    List items = null;
   
    Map result = new HashMap();
   
    boolean isError = false;
   
    String errorInfo = "";
    try
    {
      items = upload.parseRequest(request);
    }catch(Exception e)
    {
      e.printStackTrace();
      isError = true;
      errorInfo = "receive file error!";
    }
   
    if(items == null||items.size() == 0)
    {
      isError = true;
      errorInfo = "no files!";
    }else
    {
      Iterator iter = items.iterator();
      while(iter.hasNext())
      {
        FileItem item = (FileItem)iter.next();
        long fileSize = 0;
        if(item == null||item.isFormField())
          continue;
        String path = item.getName();
        fileSize = item.getSize();
       
        if(path == null)
          continue;
        String realFileName = path.substring(path.lastIndexOf("\\") + 1);
        try
        {
          realFileName = java.net.URLDecoder.decode(realFileName,"UTF-8");
        }catch(Exception e)
        {
          System.err.print("java decode file name exception");
        }

       
        Attachment attachment = das.createAttachment(realFileName, item.get());
       
        FileBean fBean = new FileBean();
        fBean.setId(attachment.getId().getValue());
        fBean.setFilename(attachment.getName());
        fBean.setFileId(attachment.getFileId());
        allFileBean.add(fBean);
       
      }
    }
    if(isError)
    {
      result.put("success", false);
      result.put("msg", errorInfo);
      result.put("allData", allFileBean);
    }else
    {
      result.put("success", true);
      result.put("allData", allFileBean);
    }

    String callBack = request.getParameter("callback");
    String resultJson = JSON.toJSONString(result);

    response.setContentType("application/json;charset=UTF-8");
    if(callBack!=null&&!"".equals(callBack))
      response.getWriter().write(callBack+"("+resultJson+")");
    else
      response.getWriter().write(resultJson);
      }
}
TOP

Related Classes of com.sogou.qadev.service.cynthia.controller.FileUploadController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.