想问下谁有使用过jspsmartupload的成功例子? 想问下谁有使用过jspsmartupload组件开发JSP页面上传的成功例子吗?能发一份给我吗?我用了这个不知道为什么老是在smartup.upload()那里过不去. 谢谢大家帮帮忙.. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 smartup.upload()过不去的原因是不是报内存溢出了?把文件设定改小,用小文件测试,大文件这个东西要很大的实际内存,找2G以上的机器跑服务才可以 我已经上传是空的txt文件的了,已经很小的,这样也不行呀. 没有报错,只是我内存耗尽死机.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) {就在这里过不去,例如m_totalBytes得到上传文件444byte,但是在这个循环里.那个i变成负数增加.-5,-6,-7进增加上去,我不知道为什么,但是这样子i<m_totalBytes就会变得永远不能成立了.所以死在这里了,我换了另外一个jar包也一样. com.jspsmart.upload.SmartUpload upload=new com.jspsmart.upload.SmartUpload();upload.initialize(pageContext);upload.setMaxFileSize(10000000); //限制上传文件的大小1兆upload.upload();//上传String strParmeter1=upload.getRequest().getParameter("Parmeter1");//文件上传后的文件对象com.jspsmart.upload.File myFile = upload.getFiles().getFile(0);String strFileName = myFile.getFileName();String abspath =request.getRealPath("/")+"/uploadFiles/"+strFileName;myFile.saveAs(abspath); 我也是用了这个呀<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><%@ page import="com.jspsmart.upload.*" %><%@ page import="DBstep.iDBManager2000.*"%><% //实例化上载bean com.jspsmart.upload.SmartUpload mySmartUpload=new com.jspsmart.upload.SmartUpload(); //初始化 mySmartUpload.initialize(pageContext); //设置上载的最大值 mySmartUpload.setMaxFileSize(500 * 1024*1024); //上载文件 mySmartUpload.upload(); //循环取得所有上载的文件 for (int i=0;i<mySmartUpload.getFiles().getCount();i++){ myFileName=myFile.getFileName(); //取得不带后缀的文件名 String suffix=myFileName.substring(0,myFileName.lastIndexOf('.')); //取得后缀名 String ext= mySmartUpload.getFiles().getFile(0).getFileExt(); //取得文件的大小 int fileSize=myFile.getSize(); //保存路径 String aa=getServletContext().getRealPath("/")+"jsp\\"; String trace=aa+myFileName; //取得别的参数 String explain=(String)mySmartUpload.getRequest().getParameter("text"); String send=(String)mySmartUpload.getRequest().getParameter("send"); //将文件保存在服务器端 myFile.saveAs(trace,mySmartUpload.SAVE_PHYSICAL); /* //下面的是将上载的文件保存到数据库中 //将文件读到流中 java.io.File file = new java.io.File(trace); java.io.FileInputStream fis = new java.io.FileInputStream(file); out.println(file.length()); //打开数据库 ResultSet result=null; String mSql=null; PreparedStatement prestmt=null; DBstep.iDBManager2000 DbaObj=new DBstep.iDBManager2000(); DbaObj.OpenConnection(); //将文件写到数据库中 mSql="insert into list (name,password,size,date,MarkBody) values (?,?,?,?,?)"; prestmt =DbaObj.Conn.prepareStatement(mSql); prestmt.setString(1, "aaa1"); prestmt.setString(2, "0000"); prestmt.setInt(3, fileSize); prestmt.setString(4, DbaObj.GetDateTime()); prestmt.setBinaryStream(5,fis,(int)file.length()); DbaObj.Conn.setAutoCommit(true) ; prestmt.executeUpdate(); DbaObj.Conn.commit(); out.println(("上载成功!!!").toString()); } else { out.println(("上载失败!!!").toString()); } }//与前面的if对应 */%> 这是我后来改过后的.<HTML><HEAD><TITLE>上传成功!</TITLE><META content="text/html; charset=gb2312" http-equiv=Content-Type></HEAD><BODY leftMargin=0 topMargin=0><jsp:useBean id="mySmartUpload" scope="page" class="com.sztelecom.csc.mcms.tools.SmartUpload" /><table width="80%" border="0" cellpadding="0" cellspacing="0" bgcolor="#DEE7EF"> <tr> <td align="center"> <% String fileName = null;com.sztelecom.csc.mcms.tools.SmartFile myFile =null; try{ mySmartUpload.initialize(pageContext); mySmartUpload.setMaxFileSize(1024 * 1024*1024) ; mySmartUpload.upload();}catch (Exception e){System.out.println("上传文件太大");} for (int i=0;i<mySmartUpload.getFiles().getCount();i++){ myFile = mySmartUpload.getFiles().getFile(0); if (!myFile.isMissing()) { //String ext=myFile.getFileExt();//得到后缀 fileName = myFile.getFileName(); myFile.saveAs("e:/home/" + fileName);//你要存放文件所在文件夹的相对路径 System.out.println("文件:<b>"+fileName+"</b>上传成功!<br>文件大小:" + myFile.getSize() + "kb<BR>"); } else{System.out.println("出错");} }%></BODY></HTML> kajh(黑丁)你能把你的upload.jsp的原代码粘出来让我看下吗? list 对象空指针异常 servlet重复提交,高手进。 TO java方向oracle数据库CLOB字段的问题. 高手进来看看..... 客户端无法连接ECLIPSE jsp写数据库用中文的问题 form表单提交给jsp页面,getParameter获取值一直是空 请教高手这些语句何意 如何設置jsp開發環境? 为什么loginID传不到下个页面啊?代码如下 子窗口中的超连接向父窗体传值 一个页面超链接问题!
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)
{
就在这里过不去,例如m_totalBytes得到上传文件444byte,但是在这个循环里.那个i变成负数增加.-5,-6,-7进增加上去,我不知道为什么,但是这样子i<m_totalBytes就会变得永远不能成立了.
所以死在这里了,我换了另外一个jar包也一样.
upload.initialize(pageContext);
upload.setMaxFileSize(10000000); //限制上传文件的大小1兆
upload.upload();//上传
String strParmeter1=upload.getRequest().getParameter("Parmeter1");
//文件上传后的文件对象
com.jspsmart.upload.File myFile = upload.getFiles().getFile(0);
String strFileName = myFile.getFileName();
String abspath =request.getRealPath("/")+"/uploadFiles/"+strFileName;
myFile.saveAs(abspath);
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="com.jspsmart.upload.*" %>
<%@ page import="DBstep.iDBManager2000.*"%>
<%
//实例化上载bean
com.jspsmart.upload.SmartUpload mySmartUpload=new com.jspsmart.upload.SmartUpload();
//初始化
mySmartUpload.initialize(pageContext);
//设置上载的最大值
mySmartUpload.setMaxFileSize(500 * 1024*1024);
//上载文件
mySmartUpload.upload();
//循环取得所有上载的文件
for (int i=0;i<mySmartUpload.getFiles().getCount();i++){
myFileName=myFile.getFileName();
//取得不带后缀的文件名
String suffix=myFileName.substring(0,myFileName.lastIndexOf('.'));
//取得后缀名
String ext= mySmartUpload.getFiles().getFile(0).getFileExt();
//取得文件的大小
int fileSize=myFile.getSize();
//保存路径
String aa=getServletContext().getRealPath("/")+"jsp\\";
String trace=aa+myFileName;
//取得别的参数
String explain=(String)mySmartUpload.getRequest().getParameter("text");
String send=(String)mySmartUpload.getRequest().getParameter("send");
//将文件保存在服务器端
myFile.saveAs(trace,mySmartUpload.SAVE_PHYSICAL);
/*
//下面的是将上载的文件保存到数据库中
//将文件读到流中
java.io.File file = new java.io.File(trace);
java.io.FileInputStream fis = new java.io.FileInputStream(file);
out.println(file.length());
//打开数据库
ResultSet result=null;
String mSql=null;
PreparedStatement prestmt=null;
DBstep.iDBManager2000 DbaObj=new DBstep.iDBManager2000();
DbaObj.OpenConnection();
//将文件写到数据库中
mSql="insert into list (name,password,size,date,MarkBody) values (?,?,?,?,?)";
prestmt =DbaObj.Conn.prepareStatement(mSql);
prestmt.setString(1, "aaa1");
prestmt.setString(2, "0000");
prestmt.setInt(3, fileSize);
prestmt.setString(4, DbaObj.GetDateTime());
prestmt.setBinaryStream(5,fis,(int)file.length());
DbaObj.Conn.setAutoCommit(true) ;
prestmt.executeUpdate();
DbaObj.Conn.commit();
out.println(("上载成功!!!").toString());
}
else
{ out.println(("上载失败!!!").toString()); }
}//与前面的if对应
*/
%>
<HTML><HEAD><TITLE>上传成功!</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
</HEAD>
<BODY leftMargin=0 topMargin=0>
<jsp:useBean id="mySmartUpload" scope="page" class="com.sztelecom.csc.mcms.tools.SmartUpload" />
<table width="80%" border="0" cellpadding="0" cellspacing="0" bgcolor="#DEE7EF">
<tr>
<td align="center">
<%
String fileName = null;
com.sztelecom.csc.mcms.tools.SmartFile myFile =null;
try{
mySmartUpload.initialize(pageContext);
mySmartUpload.setMaxFileSize(1024 * 1024*1024) ;
mySmartUpload.upload();}
catch (Exception e){
System.out.println("上传文件太大");
}
for (int i=0;i<mySmartUpload.getFiles().getCount();i++){
myFile = mySmartUpload.getFiles().getFile(0);
if (!myFile.isMissing()) {
//String ext=myFile.getFileExt();//得到后缀
fileName = myFile.getFileName();
myFile.saveAs("e:/home/" + fileName);//你要存放文件所在文件夹的相对路径
System.out.println("文件:<b>"+fileName+"</b>上传成功!<br>文件大小:" + myFile.getSize() + "kb<BR>");
}
else{System.out.println("出错");}
}
%>
</BODY></HTML>