File.java
上传用户:junmaots
上传日期:2022-07-09
资源大小:2450k
文件大小:7k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. package com.jspsmart.upload;
  2. import java.io.ByteArrayInputStream;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. import java.math.BigInteger;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import javax.servlet.ServletException;
  9. public class File
  10. {
  11.   private SmartUpload m_parent;
  12.   private int m_startData;
  13.   private int m_endData;
  14.   private int m_size;
  15.   private String m_fieldname;
  16.   private String m_filename;
  17.   private String m_fileExt;
  18.   private String m_filePathName;
  19.   private String m_contentType;
  20.   private String m_contentDisp;
  21.   private String m_typeMime;
  22.   private String m_subTypeMime;
  23.   private String m_contentString;
  24.   private boolean m_isMissing;
  25.   public static final int SAVEAS_AUTO = 0;
  26.   public static final int SAVEAS_VIRTUAL = 1;
  27.   public static final int SAVEAS_PHYSICAL = 2;
  28.   File()
  29.   {
  30.     m_startData = 0;
  31.     m_endData = 0;
  32.     m_size = 0;
  33.     m_fieldname = new String();
  34.     m_filename = new String();
  35.     m_fileExt = new String();
  36.     m_filePathName = new String();
  37.     m_contentType = new String();
  38.     m_contentDisp = new String();
  39.     m_typeMime = new String();
  40.     m_subTypeMime = new String();
  41.     m_contentString = new String();
  42.     m_isMissing = true;
  43.   }
  44.   public void fileToField(ResultSet rs, String columnName)
  45.       throws SQLException, SmartUploadException, IOException, ServletException
  46.   {
  47.     long numBlocks = 0L;
  48.     int blockSize = 0x10000;
  49.     int leftOver = 0;
  50.     int pos = 0;
  51.     if (rs == null)
  52.       throw new IllegalArgumentException("The RecordSet cannot be null (1145).");
  53.     if (columnName == null)
  54.       throw new IllegalArgumentException(
  55.           "The columnName cannot be null (1150).");
  56.     if (columnName.length() == 0)
  57.       throw new IllegalArgumentException(
  58.           "The columnName cannot be empty (1155).");
  59.     numBlocks =
  60.         BigInteger.valueOf(m_size).divide(BigInteger.valueOf(blockSize)).
  61.         longValue();
  62.     leftOver =
  63.         BigInteger.valueOf(m_size).mod(BigInteger.valueOf(blockSize)).intValue();
  64.     try
  65.     {
  66.       for (int i = 1; (long) i < numBlocks; i++)
  67.       {
  68.         rs.updateBinaryStream(
  69.             columnName,
  70.             new ByteArrayInputStream(m_parent.m_binArray, pos, blockSize),
  71.             blockSize);
  72.         pos = pos != 0 ? pos : 1;
  73.         pos = i * blockSize;
  74.       }
  75.       if (leftOver > 0)
  76.         rs.updateBinaryStream(
  77.             columnName,
  78.             new ByteArrayInputStream(m_parent.m_binArray, pos, leftOver),
  79.             leftOver);
  80.     }
  81.     catch (SQLException e)
  82.     {
  83.       byte binByte2[] = new byte[m_size];
  84.       System.arraycopy(m_parent.m_binArray, m_startData, binByte2, 0, m_size);
  85.       rs.updateBytes(columnName, binByte2);
  86.     }
  87.     catch (Exception e)
  88.     {
  89.       throw new SmartUploadException(
  90.           "Unable to save file in the DataBase (1130).");
  91.     }
  92.   }
  93.   public byte getBinaryData(int index)
  94.   {
  95.     if (m_startData + index > m_endData)
  96.       throw new ArrayIndexOutOfBoundsException("Index Out of range (1115).");
  97.     if (m_startData + index <= m_endData)
  98.       return m_parent.m_binArray[m_startData + index];
  99.     else
  100.       return 0;
  101.   }
  102.   public String getContentDisp()
  103.   {
  104.     return m_contentDisp;
  105.   }
  106.   public String getContentString()
  107.   {
  108.     String strTMP = new String(m_parent.m_binArray, m_startData, m_size);
  109.     return strTMP;
  110.   }
  111.   public String getContentType()
  112.   {
  113.     return m_contentType;
  114.   }
  115.   protected int getEndData()
  116.   {
  117.     return m_endData;
  118.   }
  119.   public String getFieldName()
  120.   {
  121.     return m_fieldname;
  122.   }
  123.   /* 获取文件数据信息 */
  124.   public byte[] getFileBinaryData()
  125.   {
  126.     try
  127.     {
  128.       byte[] file_data = new byte[m_size];
  129.       for (int i = 0; i < m_size; i++)
  130.         //fileOut.write(m_parent.m_binArray, m_startData, m_size);
  131.         file_data[i] = m_parent.m_binArray[m_startData + i];
  132.       return file_data;
  133.     }
  134.     catch (Exception e)
  135.     {
  136.       return null;
  137.     }
  138.   }
  139.   public String getFileExt()
  140.   {
  141.     return m_fileExt;
  142.   }
  143.   public String getFileName()
  144.   {
  145.     return m_filename;
  146.   }
  147.   public String getFilePathName()
  148.   {
  149.     return m_filePathName;
  150.   }
  151.   public int getSize()
  152.   {
  153.     return m_size;
  154.   }
  155.   protected int getStartData()
  156.   {
  157.     return m_startData;
  158.   }
  159.   public String getSubTypeMIME()
  160.   {
  161.     return m_subTypeMime;
  162.   }
  163.   public String getTypeMIME() throws IOException
  164.   {
  165.     return m_typeMime;
  166.   }
  167.   public boolean isMissing()
  168.   {
  169.     return m_isMissing;
  170.   }
  171.   public void saveAs(String destFilePathName)
  172.       throws SmartUploadException, IOException
  173.   {
  174.     saveAs(destFilePathName, 0);
  175.   }
  176.   public void saveAs(String destFilePathName, int optionSaveAs)
  177.       throws SmartUploadException, IOException
  178.   {
  179.     String path = new String();
  180.     path = m_parent.getPhysicalPath(destFilePathName, optionSaveAs);
  181.     if (path == null)
  182.       throw new IllegalArgumentException(
  183.           "There is no specified destination file (1140).");
  184.     try
  185.     {
  186.       java.io.File file = new java.io.File(path);
  187.       FileOutputStream fileOut = new FileOutputStream(file);
  188.       fileOut.write(m_parent.m_binArray, m_startData, m_size);
  189.       fileOut.close();
  190.     }
  191.     catch (IOException e)
  192.     {
  193.       throw new SmartUploadException("File can't be saved (1120).");
  194.     }
  195.   }
  196.   protected void setContentDisp(String contentDisp)
  197.   {
  198.     m_contentDisp = contentDisp;
  199.   }
  200.   protected void setContentType(String contentType)
  201.   {
  202.     m_contentType = contentType;
  203.   }
  204.   protected void setEndData(int endData)
  205.   {
  206.     m_endData = endData;
  207.   }
  208.   protected void setFieldName(String fieldName)
  209.   {
  210.     m_fieldname = fieldName;
  211.   }
  212.   protected void setFileExt(String fileExt)
  213.   {
  214.     m_fileExt = fileExt;
  215.   }
  216.   protected void setFileName(String fileName)
  217.   {
  218.     m_filename = fileName;
  219.   }
  220.   protected void setFilePathName(String filePathName)
  221.   {
  222.     m_filePathName = filePathName;
  223.   }
  224.   protected void setIsMissing(boolean isMissing)
  225.   {
  226.     m_isMissing = isMissing;
  227.   }
  228.   protected void setParent(SmartUpload parent)
  229.   {
  230.     m_parent = parent;
  231.   }
  232.   protected void setSize(int size)
  233.   {
  234.     m_size = size;
  235.   }
  236.   protected void setStartData(int startData)
  237.   {
  238.     m_startData = startData;
  239.   }
  240.   protected void setSubTypeMIME(String subTypeMime)
  241.   {
  242.     m_subTypeMime = subTypeMime;
  243.   }
  244.   protected void setTypeMIME(String TypeMime)
  245.   {
  246.     m_typeMime = TypeMime;
  247.   }
  248. }