public void upload() throws ServletException,IOException,SmartUploadException
{
int i = 0;
//boolean flag = false;
boolean flag1 = false;
//boolean flag2 = false;
long l = 0L;
//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();
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)
{
SmartFile file = new SmartFile();
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);
}
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;
}
}
}
分享到:
相关推荐
"javascript经典源码收藏"这个主题涵盖了CSS、JavaScript特效以及日期控件等关键知识点,这些都是构建现代网页应用不可或缺的部分。 首先,CSS(Cascading Style Sheets)是用于控制网页样式和布局的样式表语言。在...
《易语言源码收藏专家2.0》是一款专为易语言爱好者和开发者设计的源码管理工具,旨在帮助用户高效地收集、整理和管理易语言编程的源代码。这款软件的核心功能包括源码分类、搜索、查看、编辑以及版本控制等,是提升...
这个“vb源码收藏工具收集器”显然是一款专为VB程序员设计的应用,用于管理和整理从各种渠道获取的VB源代码,帮助开发者更好地组织和分类他们的代码资源。 首先,我们来谈谈VB源码的重要性。在编程过程中,源码是...
本资源名为“PB源码收藏,非常难得:ASA数据库自动注册源码”,这表明它提供了一种特殊的功能——自动注册ASA数据库。在开发过程中,数据库的注册通常涉及创建数据库连接、设置连接参数、验证连接等步骤。自动注册...
"C#经典功能源码收藏集锦"是一个宝贵的资源,它包含了多种常见的C#功能实现,为初学者提供了丰富的学习材料。这个压缩包文件就像一个宝库,等待着开发者去发掘和学习。下面将详细阐述其中可能包含的一些核心知识点。...
"易语言源码收藏夹小工具.rar"是一个包含易语言源代码的压缩包,可能是为了帮助用户整理、收集和管理他们的易语言代码片段或小型程序。 这个小工具可能包括以下功能: 1. **源码管理**:用户可以创建、编辑、删除和...
"易语言源码收藏夹小工具.7z"是一个压缩包,其中包含了易语言的源代码文件,很可能是用于创建一个便于管理和组织源代码的实用工具。 这个小工具可能包含以下几个方面的知识点: 1. **易语言基础**:易语言的核心...
【标题】:“俄罗斯方块 源码 收藏的一个经典的C++程序” 【描述】:“俄罗斯方块 源码 收藏的一个经典的C++程序” 这个标题和描述揭示了一个关于经典游戏“俄罗斯方块”的源代码,它是由C++编程语言实现的。在IT...
大盈网吧主页源码个人收藏版 大盈网吧主页源码个人收藏版
《深入剖析OSChina Android App 2.2.1 源码》 在移动开发领域,Android应用的源码分析是提升技术能力、学习最佳实践的重要途径。本篇将聚焦于OSChina Android App 2.2.1版本的源码,通过对源码的详细解析,揭示其...
【我的导航】网址收藏夹源码 v1.0 是一个基于ASP技术开发的网页收藏管理平台,用于构建个性化和实用的网址导航站点。这个源码允许用户保存、管理和分享他们的常用网址,为用户提供了一个便捷的方式来组织和访问...
网络收藏夹源码是一个基于ASP技术实现的网站应用,它允许用户在线保存、管理和分享他们的网址收藏,类似于浏览器的收藏夹功能,但提供了更便捷的跨设备访问和分享选项。 在"ASP源码—网络收藏夹源码.zip"这个压缩包...
· 用户注册及自定义网址收藏夹功能,留住用户 · 点入来路自动统计排行功能,流量返还,方便推广 · 全站生成HTML · 自定义生成HTML的目录和文件名,将SEO进行到底 · 超强内核引擎,生成全站HTML只需要几分钟 · 数据...
通过学习和实践这些自定义控件的源码,初学者能够掌握Qt的事件处理、绘图机制、样式设计和动画原理等核心技能。此外,对于更高级的开发者,这些源码也提供了优化性能、实现复杂交互或设计自定义UI组件的参考。不断...
今天的分享是一款之前收集的 C# Winform+SQLite 图书管理系统,数据库使用SQLite,代码清晰、注释完善、简单易读,界面美观大气,非常适合初学者学习或有相应软件需求的二次开发借鉴、源码收藏。 该图书管理系统使用...
C# Winform 图书管理系统,数据库使用SQLServer,源码功能实用,使用经典MVC分层模式,代码清晰、注释完整,非常适合初学者学习或有相应软件需求的二次开发借鉴、源码收藏。 该源码包含各数据表完整的增删改查功能...
这个"ASP源码—网址收藏夹程序 1.0.zip"是一个基于ASP技术的程序,它允许用户在线保存、管理和分享他们的网络书签或收藏夹。下面将详细介绍ASP的基本概念、工作原理以及如何理解这个网址收藏夹程序。 ASP的工作原理...