/*
?* ViewUploadFile.java
?*
?* Created on 2006年2月4日, 上午1:29
?*/
package path.system.manager;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.hibernate.Session;
import system.entity.CRM_UploadFile;
import.FileStorageService;
public class ViewUploadFile extends HttpServlet {
??? private FileInputStream isFile = null;
???
??? /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
???? * @param request servlet request
???? * @param response servlet response
???? */
??? protected void processRequest(HttpServletRequest request, HttpServletResponse response)
??? throws ServletException, IOException {
??????? String szCoObject=request.getParameter("CoObject");
??????? String szID=request.getParameter("ID");
??????? String szMode = request.getParameter("Mode");
???????
??????? //清空緩沖
??????? response.reset();
???????
??????? OutputStream osOut = response.getOutputStream();
???????
??????? if(szID == null || szID.equals("") || szID.equals("0"))
??????? {??
??????????? byte[] cFileData = this.getNoDate (szCoObject);
???????????
??????????? this.isFile.read(cFileData);
??????????? osOut.write(cFileData);
??????? }
??????? else
??????? {
??????????? Session ssSession = HibernateUtil.getSession();
??????????? CRM_UploadFile csUpload;
??????????? csUpload = (CRM_UploadFile)ssSession.load(CRM_UploadFile.class,Integer.valueOf(szID));
??????????? String szFileName =csUpload.getFileName();
??????????? if (szFileName==null) szFileName = "";
??????????? String szRightName = new String( szFileName.getBytes(), "ISO8859_1" );????? //中文文件名處理
??????????? String szFileSize = csUpload.getFileSize().toString();
??????????? String urlFileName = csUpload.getUrlFileName();
///輸出到網頁
??????????? if ("0".equals(szFileSize)) {
??????????????? byte[] cFileData = this.getNoDate(szCoObject);
??????????????? this.isFile.read(cFileData);
??????????????? osOut.write(cFileData);
??????????? } else {
??????????????? if(szMode.equals("Download")) {
??????????????????????? response.setContentType("application/x-msdownload;");?????????? //下載類型
??????????????????????? response.setHeader("Content-Disposition","attachment; filename=" + szRightName);
??????????????? } else {
??????????????????????? response.setContentType(csUpload.getContentType());
??????????????????????? response.setHeader("Content-Disposition","filename=" + szRightName);
??????????????? }
??????????????? response.setHeader("content-length", szFileSize);
??????????????? //java.sql.Blob blob = csUpload.getBinaryData();
??????????????? File file = new File(FileStorageService.getRootPath() + urlFileName);
??????????????? if (!file.exists())
??????????????????? return;
???????????????
??????????????? InputStream bis = new BufferedInputStream(new FileInputStream(file));
??????????????? byte[] buffer = new byte[2048];
??????????????? for (int i = bis.read(buffer); i > 0; i = bis.read(buffer))
??????????????????? osOut.write(buffer, 0, i);
??????????????? bis.close();
???????????????????
??????????? }
??????? }
???????
??????? //防止超時
??????? //response.setStatus( response.SC_OK );
??????? response.flushBuffer();
??? }
???
??? private byte[] getNoDate (String szCoObject) throws IOException{
??????? String szFileName="";
??????? if(szCoObject.equals("Employee"))
??????????? szFileName = getServletContext().getRealPath("/images/Employee/NoPhoto.gif");
??????? else
??????????? szFileName = getServletContext().getRealPath("/images/Commodity/NoPhoto.gif");
??????? this.isFile= new FileInputStream(szFileName);
??????? int nSize = this.isFile.available();
??????? byte[] cFileData = new byte[nSize];
??????? return cFileData;
??? }
??? // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
??? /** Handles the HTTP <code>GET</code> method.
???? * @param request servlet request
???? * @param response servlet response
???? */
??? protected void doGet(HttpServletRequest request, HttpServletResponse response)
??? throws ServletException, IOException {
??????? processRequest(request, response);
??? }
???
??? /** Handles the HTTP <code>POST</code> method.
???? * @param request servlet request
???? * @param response servlet response
???? */
??? protected void doPost(HttpServletRequest request, HttpServletResponse response)
??? throws ServletException, IOException {
??????? processRequest(request, response);
??? }
???
??? /** Returns a short description of the servlet.
???? */
??? public String getServletInfo() {
??????? return "Short description";
??? }
??? // </editor-fold>
}
大盤預測
國富論
posted on 2007-08-21 13:24
華夢行 閱讀(109)
評論(0) 編輯 收藏