从SmartUpload到FileUpload的无缝转移[网络技术]
本文“从SmartUpload到FileUpload的无缝转移[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在改正项目时,发现从前的jsp项目,附件上传用的是SmartUpload,系统中多处都用的是这这种方法上传,这种上传附件的机制大小只能传十兆左右,
而客户目前要求,至少50M,所以原有的SmartUpload不能满意需求,所以打算用Fileupload来实现附件上传功效.但假如换FileUpload,则系统代码窜改量很大,大约有50于处地方都需求改正,遂放弃,直接改正代码的设法.
于是,看了一些代码后,自己写了一个从SmartUload到FileUpload转接的中间件程序,可实现不用改正原有SmartUpload上传的代码.
原上传的主要代码见下面:
Java代码
SmartUpload objUpload = new SmartUpload(pageContext);
///主要代码
if(objUpload.getCount()>0)
{
for(int i=1;i<=objUpload.getCount();i++){
ps.setString(9,objUpload.getUgetContentType(i));
ps.setString(10,objUpload.getUFileName(i));
ps.setBinaryStream(11,objUpload.getUFileInputStream(i), objUpload.getFLength(i));//Content
}
}
我写的中间件类,类名也叫SmartUpload,但用的是Fileupload上传的机制:
Java代码
package gui;
import java.io.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.servlet.*;
import org.apache.commons.fileupload.disk.*;
// Referenced classes of package gui:
// SmartFiles, SmartRequest, SmartUploadException, SmartFile
public class SmartUpload
{
protected Hashtable parameters;//保存普通form表单域
protected Hashtable files;//保存上传的文件
private int sizeThreshold = 4096;
public int maxflag=0;
private long filemaxsize=100*1024*1024; //默许100MB
protected HttpServletRequest m_request;
protected HttpServletResponse m_response;
protected ServletContext m_application;
private PageContext page;
private String pencoding;
public SmartUpload()
{
}
//构造办法 参数一 pagecontex 参数二 普通为GBK 参数三 上传的最大文件 单位MB
public SmartUpload(PageContext pagecontext,String encoding,long filesize)
throws ServletException, IOException,FileUploadException
{
page=null;
page=pagecontext;
m_request=(HttpServletRequest)page.getRequest();
m_response=(HttpServletResponse)page.getResponse();
if(encoding==null||"".equals(encoding)) encoding="GBK";
this.pencoding=encoding;
if(filesize<3) filesize=100;
System.out.println("fileupload版本号:sun2009101303. 最大上传:"+filesize+"Mb");
this.filemaxsize=filesize*1024*1024;
pagei
nit(m_request);
}
// 构造办法 参数一 pagecontex 参数二 上传的最大文件 单位MB
public SmartUpload(PageContext pagecontext,long filesize)
throws ServletException, IOException,FileUploadException
{
this(pagecontext,"GBK",filesize);
}
// 构造办法 参数一 pagecontex 参数二 编码格局
public SmartUpload(PageContext pagecontext,String encode)
throws ServletException, IOException,FileUploadException
{
this(pagecontext,encode,100);
}
// 构造办法 参数一 pagecontex 默许GBK 默许大小100MB
public SmartUpload(PageContext pagecontext)
throws ServletException, IOException,FileUploadException
{
this(pagecontext,"GBK",100);
}
以上是“从SmartUpload到FileUpload的无缝转移[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |