Package com.jeecms.core.action.front

Source Code of com.jeecms.core.action.front.DbFileServlet

package com.jeecms.core.action.front;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.BeanFactoryUtils;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import com.jeecms.core.entity.DbFile;
import com.jeecms.core.manager.DbFileMng;

@SuppressWarnings("serial")
public class DbFileServlet extends HttpServlet {
  /**
   * 参数名称
   */
  public static final String PARAM_NAME = "n";

  @Override
  protected void doGet(HttpServletRequest request,
      HttpServletResponse response) throws ServletException, IOException {
    String name = request.getParameter(PARAM_NAME);
    if (StringUtils.isBlank(name)) {
      response.sendError(HttpServletResponse.SC_NOT_FOUND);
      return;
    }
    DbFile file = dbFileMng.findById(name);
    if (file == null) {
      response.sendError(HttpServletResponse.SC_NOT_FOUND);
      return;
    }
    String mimeType = getServletContext().getMimeType(name);
    if (mimeType != null) {
      response.setContentType(mimeType);
    }
    String filename = file.getId();
    int index = filename.lastIndexOf("/");
    if (index != -1) {
      filename = filename.substring(index + 1);
    }
    response.addHeader("Content-disposition", "filename=" + filename);
    response.setContentLength(file.getLength());
    ServletOutputStream out = response.getOutputStream();
    out.write(file.getContent());
    out.flush();
    out.close();
  }

  @Override
  public void init() throws ServletException {
    WebApplicationContext appCtx = WebApplicationContextUtils
        .getWebApplicationContext(getServletContext());
    dbFileMng = BeanFactoryUtils.beanOfTypeIncludingAncestors(appCtx,DbFileMng.class);
  }

  private DbFileMng dbFileMng;
}
TOP

Related Classes of com.jeecms.core.action.front.DbFileServlet

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.