⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 picturecontroller.java

📁 dorado 展现中间件是一款企业级的商用AJAX平台软件
💻 JAVA
字号:
package sample.skills.other.picture;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import javax.servlet.http.HttpServletRequest;

import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import com.bstek.dorado.biz.FileController;
import com.bstek.dorado.common.UserConfig;
import com.bstek.dorado.data.db.DBStatement;
import com.bstek.dorado.utils.MetaData;
import com.bstek.dorado.utils.StringHelper;
import com.bstek.dorado.utils.variant.VariantSet;

/**
 * PictureController
 */
public class PictureController
    extends FileController {
  protected File getPicturePath() {
    return new File(UserConfig.getString("picture-path"));
  }

  /**
   * 设定 DiskFileUpload 的相关属性.
   * <p>关于DiskFileUpload, 可以到www.apache.org/commons查找FileUpload的文档</p>
   *
   * @param request HttpServletRequest
   * @param fileUpload DiskFileUpload
   */
  protected void initFileUpload(HttpServletRequest request,
                                DiskFileUpload fileUpload) {
    fileUpload.setSizeMax(1024 * 100); // 设定可接受的最大上传文件的大小100K
  }

  /**
   * 取得存放上传文件的工作目录
   *
   * @param request HttpServletRequest
   * @param parameters MetaData
   * @return String
   */
  protected File getUploadWorkDirectory(HttpServletRequest request,
                                        MetaData parameters) {
    return getPicturePath();
  }

  /**
   * 取得存储上传文件的文件名
   *
   * @param request HttpServletRequest
   * @param fileName String
   * @param parameters MetaData
   * @return String
   */
  protected String getStoreFileName(HttpServletRequest request, String fileName,
                                    MetaData parameters) {
    // 注意: 此处的代码仅用于演示上传文件的处理方式。
    // 以系统时间戳为文件命名并不能有效的避免文件重名!
    int pos = fileName.lastIndexOf(".");
    String extName;
    if (pos > 0) {
      extName = fileName.substring(pos);
    }
    else {
      extName = "";
    }
    return System.currentTimeMillis() + extName;
  }

  /**
   * 存储已经上传的文件
   *
   * @param request HttpServletRequest
   * @param fileItem String
   * @param storeFile String
   * @param parameters MetaData
   * @throws Exception
   */
  protected void storeUploadFile(HttpServletRequest request, FileItem fileItem,
                                 File storeFile, MetaData parameters)
      throws Exception {
    super.storeUploadFile(request, fileItem, storeFile, parameters);

    String employee_id = parameters.getString("employee_id");
    DBStatement st = new DBStatement();
    try {
      st.setSql("SELECT image FROM employee WHERE employee_id = :employee_id");
      st.parameters().setString("employee_id", employee_id);
      VariantSet v = st.query();
      String pictureFileName = v.getString("image");
      if (StringHelper.isNotEmpty(pictureFileName)) {
        File oldFile = new File(getPicturePath().getAbsolutePath() +
                                File.separator + pictureFileName);
        if (oldFile.exists()) {
          oldFile.delete(); // 删除原有的图片
        }
      }

      st.setSql(DBStatement.UPDATE, "employee", "employee_id");
      st.parameters().setString("employee_id", employee_id);
      st.parameters().setString("image", storeFile.getName());
      st.execute();

      request.setAttribute("uploaded.employee_id", employee_id);
    }
    finally {
      st.close();
    }
  }

  /**
   * 取得将要下载的文件的文件名
   *
   * @param request HttpServletRequest
   * @return String
   */
  protected String getDownLoadFileName(HttpServletRequest request) {
    return request.getParameter("employee_id");
  }

  /**
   * 取得将要被下载的文件的文件输入流
   *
   * @param request HttpServletRequest
   * @throws Exception
   * @return InputStream
   */
  protected InputStream getDownloadFileInputStream(HttpServletRequest request)
      throws Exception {
    String employee_id = request.getParameter("employee_id");
    String pictureFileName = null;

    DBStatement st = new DBStatement();
    try {
      st.setSql("SELECT image FROM employee WHERE employee_id = :employee_id");
      st.parameters().setString("employee_id", employee_id);
      VariantSet v = st.query();
      pictureFileName = v.getString("IMAGE");
    }
    finally {
      st.close();
    }

    if (pictureFileName != null) {
      return new FileInputStream(getPicturePath().getAbsolutePath() +
                                 File.separator + pictureFileName);
    }
    else {
      return null;
    }
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -