📄 smartupload.java~13~
字号:
// Decompiled by DJ v3.5.5.77 Copyright 2003 Atanas Neshkov Date: 2004-09-14 11:10:13// Home Page : http://members.fortunecity.com/neshkov/dj.html - Check often for new version!// Decompiler options: packimports(3)// Source File Name: SmartUpload.javapackage com.jspsmart.upload;import java.io.*;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Vector;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.jsp.JspWriter;import javax.servlet.jsp.PageContext;// Referenced classes of package com.jspsmart.upload:// Files, Request, SmartUploadException, Filepublic class SmartUpload{ public SmartUpload() { m_totalBytes = 0; m_currentIndex = 0; m_startData = 0; m_endData = 0; m_boundary = new String(); m_totalMaxFileSize = 0L; m_maxFileSize = 0L; m_deniedFilesList = new Vector(); m_allowedFilesList = new Vector(); m_denyPhysicalPath = false; m_forcePhysicalPath = false; m_contentDisposition = new String(); m_files = new Files(); m_formRequest = new Request(); } /** * @deprecated Method init is deprecated */ public final void init(ServletConfig servletconfig) throws ServletException { m_application = servletconfig.getServletContext(); } /** * @deprecated Method service is deprecated */ public void service(HttpServletRequest httpservletrequest, HttpServletResponse httpservletresponse) throws ServletException, IOException { m_request = httpservletrequest; m_response = httpservletresponse; } public final void initialize(ServletConfig servletconfig, HttpServletRequest httpservletrequest, HttpServletResponse httpservletresponse) throws ServletException { m_application = servletconfig.getServletContext(); m_request = httpservletrequest; m_response = httpservletresponse; } public final void initialize(PageContext pagecontext) throws ServletException { m_application = pagecontext.getServletContext(); m_request = (HttpServletRequest)pagecontext.getRequest(); m_response = (HttpServletResponse)pagecontext.getResponse(); } /** * @deprecated Method initialize is deprecated */ public final void initialize(ServletContext servletcontext, HttpSession httpsession, HttpServletRequest httpservletrequest, HttpServletResponse httpservletresponse, JspWriter jspwriter) throws ServletException { m_application = servletcontext; m_request = httpservletrequest; m_response = httpservletresponse; } public void upload() throws ServletException, IOException, SmartUploadException { int i = 0; boolean flag = false; long l = 0L; boolean flag1 = false; String s = new String(); String s2 = new String(); String s4 = new String(); String s5 = new String(); String s6 = new String(); String s7 = new String(); String s8 = new String(); String s9 = new String(); String s10 = new String(); boolean flag2 = false; m_totalBytes = m_request.getContentLength(); m_binArray = new byte[m_totalBytes]; int j; for(; i < m_totalBytes; i += j) try { m_request.getInputStream(); j = m_request.getInputStream().read(m_binArray, i, m_totalBytes - i); } catch(Exception exception) { throw new SmartUploadException("Unable to upload."); } for(; !flag1 && m_currentIndex < m_totalBytes; m_currentIndex++) if(m_binArray[m_currentIndex] == 13) flag1 = true; else m_boundary = m_boundary + (char)m_binArray[m_currentIndex]; if(m_currentIndex == 1) return; for(m_currentIndex++; m_currentIndex < m_totalBytes; m_currentIndex = m_currentIndex + 2) { String s1 = getDataHeader(); m_currentIndex = m_currentIndex + 2; boolean flag3 = s1.indexOf("filename") > 0; String s3 = getDataFieldValue(s1, "name"); if(flag3) { s6 = getDataFieldValue(s1, "filename"); s4 = getFileName(s6); s5 = getFileExt(s4); s7 = getContentType(s1); s8 = getContentDisp(s1); s9 = getTypeMIME(s7); s10 = getSubTypeMIME(s7); } getDataSection(); if(flag3 && s4.length() > 0) { if(m_deniedFilesList.contains(s5)) throw new SecurityException("The extension of the file is denied to be uploaded (1015)."); if(!m_allowedFilesList.isEmpty() && !m_allowedFilesList.contains(s5)) throw new SecurityException("The extension of the file is not allowed to be uploaded (1010)."); if(m_maxFileSize > 0L && (long)((m_endData - m_startData) + 1) > m_maxFileSize) throw new SecurityException("Size exceeded for this file : " + s4 + " (1105)."); l += (m_endData - m_startData) + 1; if(m_totalMaxFileSize > 0L && l > m_totalMaxFileSize) throw new SecurityException("Total File Size exceeded (1110)."); } if(flag3) { com.jspsmart.upload.File file = new com.jspsmart.upload.File(); file.setParent(this); file.setFieldName(s3); file.setFileName(s4); file.setFileExt(s5); file.setFilePathName(s6); file.setIsMissing(s6.length() == 0); file.setContentType(s7); file.setContentDisp(s8); file.setTypeMIME(s9); file.setSubTypeMIME(s10); if(s7.indexOf("application/x-macbinary") > 0) m_startData = m_startData + 128; file.setSize((m_endData - m_startData) + 1); file.setStartData(m_startData); file.setEndData(m_endData); m_files.addFile(file); //m_files.addFile(file); } else { String s11 = new String(m_binArray, m_startData, (m_endData - m_startData) + 1); m_formRequest.putParameter(s3, s11); } if((char)m_binArray[m_currentIndex + 1] == '-') break; } } public int save(String s) throws ServletException, IOException, SmartUploadException { return save(s, 0); } public int save(String s, int i) throws ServletException, IOException, SmartUploadException { int j = 0; if(s == null) s = m_application.getRealPath("/"); if(s.indexOf("/") != -1) { if(s.charAt(s.length() - 1) != '/') s = s + "/"; } else if(s.charAt(s.length() - 1) != '\\') s = s + "\\"; for(int k = 0; k < m_files.getCount(); k++) if(!m_files.getFile(k).isMissing()) { m_files.getFile(k).saveAs(s + m_files.getFile(k).getFileName(), i); j++; } return j; } public int getSize() { return m_totalBytes; } public byte getBinaryData(int i) { byte byte0; try { byte0 = m_binArray[i]; } catch(Exception exception) { throw new ArrayIndexOutOfBoundsException("Index out of range (1005)."); } return byte0; } public Files getFiles() { return m_files; } public Request getRequest() { return m_formRequest; } public void downloadFile(String s) throws ServletException, IOException, SmartUploadException { downloadFile(s, null, null); } public void downloadFile(String s, String s1) throws ServletException, IOException, SmartUploadException, SmartUploadException { downloadFile(s, s1, null); } public void downloadFile(String s, String s1, String s2) throws ServletException, IOException, SmartUploadException { downloadFile(s, s1, s2, 65000); } public void downloadFile(String s, String s1, String s2, int i) throws ServletException, IOException, SmartUploadException { if(s == null) throw new IllegalArgumentException("File '" + s + "' not found (1040)."); if(s.equals("")) throw new IllegalArgumentException("File '" + s + "' not found (1040)."); if(!isVirtual(s) && m_denyPhysicalPath) throw new SecurityException("Physical path is denied (1035)."); if(isVirtual(s)) s = m_application.getRealPath(s); java.io.File file = new java.io.File(s); FileInputStream fileinputstream = new FileInputStream(file); long l = file.length(); boolean flag = false; int k = 0; byte abyte0[] = new byte[i]; if(s1 == null) m_response.setContentType("application/x-msdownload"); else if(s1.length() == 0) m_response.setContentType("application/x-msdownload"); else m_response.setContentType(s1); m_response.setContentLength((int)l); m_contentDisposition = m_contentDisposition != null ? m_contentDisposition : "attachment;"; if(s2 == null) m_response.setHeader("Content-Disposition", m_contentDisposition + " filename=" + getFileName(s)); else if(s2.length() == 0) m_response.setHeader("Content-Disposition", m_contentDisposition); else m_response.setHeader("Content-Disposition", m_contentDisposition + " filename=" + s2); while((long)k < l) { int j = fileinputstream.read(abyte0, 0, i); k += j; m_response.getOutputStream().write(abyte0, 0, j); } fileinputstream.close(); } public void downloadField(ResultSet resultset, String s, String s1, String s2) throws ServletException, IOException, SQLException { if(resultset == null) throw new IllegalArgumentException("The RecordSet cannot be null (1045)."); if(s == null) throw new IllegalArgumentException("The columnName cannot be null (1050)."); if(s.length() == 0) throw new IllegalArgumentException("The columnName cannot be empty (1055)."); byte abyte0[] = resultset.getBytes(s); if(s1 == null) m_response.setContentType("application/x-msdownload"); else if(s1.length() == 0) m_response.setContentType("application/x-msdownload"); else m_response.setContentType(s1); m_response.setContentLength(abyte0.length); if(s2 == null) m_response.setHeader("Content-Disposition", "attachment;"); else if(s2.length() == 0) m_response.setHeader("Content-Disposition", "attachment;"); else m_response.setHeader("Content-Disposition", "attachment; filename=" + s2); m_response.getOutputStream().write(abyte0, 0, abyte0.length); } public void fieldToFile(ResultSet resultset, String s, String s1) throws ServletException, IOException, SmartUploadException, SQLException { try { if(m_application.getRealPath(s1) != null) s1 = m_application.getRealPath(s1); InputStream inputstream = resultset.getBinaryStream(s); FileOutputStream fileoutputstream = new FileOutputStream(s1); int i; while((i = inputstream.read()) != -1) fileoutputstream.write(i); fileoutputstream.close(); } catch(Exception exception) { throw new SmartUploadException("Unable to save file from the DataBase (1020)."); } } private String getDataFieldValue(String s, String s1) { String s2 = new String(); String s3 = new String(); int i = 0; boolean flag = false; boolean flag1 = false; boolean flag2 = false; s2 = s1 + "=" + '"'; i = s.indexOf(s2); if(i > 0) { int j = i + s2.length(); int k = j; s2 = "\""; int l = s.indexOf(s2, j); if(k > 0 && l > 0) s3 = s.substring(k, l);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -