熟悉jspsmartupload的大侠,拜托了 我也试过直接将文件传到Oracle数据库,但是试了好久也没有成功,最后查了好多资料后,才发现上传的数据库的功能好像是有bug,没办法,只能先传到一个目录里,然后再向数据库里存。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我想把多个文件的下载做成是打勾选中即可一次下载,是不是必须得修改java程序,还是直接可以用jsp实现? <%out.print("请等待......");Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=student";//pubs为你的数据库的String user="sa";String password="";Connection conn= DriverManager.getConnection(url,user,password);Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);//TheBean.doUpload(request);String user_name=getStr(request.getParameter("user_name"));String user_class=getStr(request.getParameter("user_class"));//添加数据到数据库--String sql="select * from student_info where name='" +user_name+"' and id_class=" + user_class;ResultSet rs=stmt.executeQuery(sql);if(!rs.next()){ String u = "c:\\lxxi\\";////上传软件的路径 TheBean.setSavePath(u); TheBean.doUpload(request); out.print("<br>"+"您不是我们的学生,请先注册"+"<br>"); out.print(user_name); out.print(user_class);} else { String urll = "c:\\linrui\\";////上传软件的路径 urll+=user_name+"\\"; TheBean.setSavePath(urll); TheBean.doUpload(request); out.println("<br>作业提交成功"); out.println(urll); out.print(user_name); out.print(user_class); }%> 1。多个文件上传也没问题只要能一个个读近来就可以的smartupload支持过个上传2。多个文件的下载没有试过我觉得就算是过个文件下载也要弹出对话框询问保存的路径和名称吧如果这样可以的话也应该没有问题 多个文件上载到文件夹没有问题,但如果要是直接存到数据库就不行.meyoushe(孤独剑) :"TheBean"是jspsmartupload里的类文件吗,还是自己写的.如果你有完整的代码,能不能发封mail给我.我的地址:[email protected].谢谢. 多个文件上载到文件夹没有问题,但如果要是直接存到数据库就不行我的没问题数据库sqlserver2000<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><%@ page import="java.lang.*" %><%@ 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++){ //取得上载的文件 com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i); if (!myFile.isMissing()) { //取得上载的文件的文件名 String myFileName=myFile.getFileName(); //取得不带后缀的文件名 String suffix=myFileName.substring(0,myFileName.lastIndexOf('.')); //取得后缀名 String ext= mySmartUpload.getFiles().getFile(0).getFileExt(); //取得文件的大小 int fileSize=myFile.getSize(); //保存路径 String trace="c:/"+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); //打开数据库 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,"aaa"); 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对应%> 搞错了是这个:我刚试过了没有问题是不是你的数据表的结构的事比如唯一性约束什么的<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><%@ page import="java.lang.*" %><%@ 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++){ //取得上载的文件 com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i); if (!myFile.isMissing()) { //取得上载的文件的文件名 String myFileName=myFile.getFileName(); //取得不带后缀的文件名 String suffix=myFileName.substring(0,myFileName.lastIndexOf('.')); //取得后缀名 String ext= mySmartUpload.getFiles().getFile(0).getFileExt(); //取得文件的大小 int fileSize=myFile.getSize(); //保存路径 String trace="c:/"+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); //打开数据库 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, "aaa"); 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对应%> 不用他的,用自己的写数据库就成了import upload.*;import java.sql.*;import javax.servlet.jsp.PageContext;public class Upload{ upload.SmartUpload smartUpload = new upload.SmartUpload(); common.DB db = new common.DB(); upload.File myFile; public final void initialize(PageContext pageContext)throws Exception { smartUpload.initialize(pageContext); smartUpload.setAllowedFilesList(syscfg.GetSys.getAllowedFilesList()); smartUpload.setMaxFileSize(syscfg.GetSys.getMaxFileSize()); } public int getValue(String valueName)throws Exception { String sql = "SELECT var_value FROM variables where var_name='"+valueName+"'"; ResultSet rs = db.query(sql); rs.next(); int uploadfile = rs.getInt("var_value"); sql = "update variables set var_value=var_value+1 where var_name='"+valueName+"'"; db.query(sql); return uploadfile; } public String upload()throws Exception { String fileName = ""; smartUpload.upload(); myFile = smartUpload.getFiles().getFile(0); if (!myFile.isMissing()) { fileName = getValue("uploadfile")+"."+myFile.getFileExt(); if(myFile.getSize()>syscfg.GetSys.getOutFileMinSize()){ outToFile(fileName); }else{ outToDB(fileName); } } return fileName; } private void outToFile(String fileName)throws Exception { myFile.saveAs(syscfg.GetSys.getFileSavePath()+fileName); } private void outToDB(String fileName)throws Exception { String sql = "insert into upload_file (filename,filesize,filecontent) values "; sql += "('"+fileName+"','"+myFile.getSize()+"','"+common.WordOperate.toEncoding(myFile.getContentString())+"')"; db.query(sql); } public upload.File getFile() { return myFile; } public upload.Request getRequest() { return smartUpload.getRequest(); }}***************************************************if(myFile.getSize()>syscfg.GetSys.getOutFileMinSize()){这里是判断一下大小,小文件存数据库,大文件存服务器文件 请问JAVA怎么获取本地计算机目录呢? java activity工作流资料好少啊?大家有用的吗?求普及帖链接 这个sql咋写??? 在同一页面如何获取当前文本框的值 如何配置struts1.3.4? POI读取Excel文件的日期型数据有问题 向斑竹及各位大虾请教!! smartUpload问题,如何实现文件的重命名 请教高手JSP的中文问题 :) 刚开始弄JSP了,感觉挺难的! 高手帮忙,一个简单的sql查询语句问题 关于怎样配置jsp运行环境(高分)
out.print("请等待......");
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=student";
//pubs为你的数据库的
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
//TheBean.doUpload(request);
String user_name=getStr(request.getParameter("user_name"));
String user_class=getStr(request.getParameter("user_class"));
//添加数据到数据库--
String sql="select * from student_info where name='" +user_name+"' and id_class=" + user_class;
ResultSet rs=stmt.executeQuery(sql);
if(!rs.next())
{
String u = "c:\\lxxi\\";////上传软件的路径
TheBean.setSavePath(u);
TheBean.doUpload(request);
out.print("<br>"+"您不是我们的学生,请先注册"+"<br>");
out.print(user_name);
out.print(user_class);
}
else
{
String urll = "c:\\linrui\\";////上传软件的路径
urll+=user_name+"\\";
TheBean.setSavePath(urll);
TheBean.doUpload(request);
out.println("<br>作业提交成功");
out.println(urll);
out.print(user_name);
out.print(user_class);
}
%>
只要能一个个读近来就可以的
smartupload支持过个上传
2。多个文件的下载没有试过
我觉得就算是过个文件下载
也要弹出对话框询问保存的路径和名称吧
如果这样可以的话也应该没有问题
meyoushe(孤独剑) :"TheBean"是jspsmartupload里的类文件吗,还是自己写的.
如果你有完整的代码,能不能发封mail给我.
我的地址:[email protected].
谢谢.
多个文件上载到文件夹没有问题,但如果要是直接存到数据库就不行我的没问题
数据库sqlserver2000
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.lang.*" %>
<%@ 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++){
//取得上载的文件
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);
if (!myFile.isMissing())
{
//取得上载的文件的文件名
String myFileName=myFile.getFileName();
//取得不带后缀的文件名
String suffix=myFileName.substring(0,myFileName.lastIndexOf('.'));
//取得后缀名
String ext= mySmartUpload.getFiles().getFile(0).getFileExt();
//取得文件的大小
int fileSize=myFile.getSize();
//保存路径
String trace="c:/"+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);
//打开数据库
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,"aaa");
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对应
%>
是这个:
我刚试过了
没有问题
是不是你的数据表的结构的事
比如唯一性约束什么的
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.lang.*" %>
<%@ 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++){
//取得上载的文件
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);
if (!myFile.isMissing())
{
//取得上载的文件的文件名
String myFileName=myFile.getFileName();
//取得不带后缀的文件名
String suffix=myFileName.substring(0,myFileName.lastIndexOf('.'));
//取得后缀名
String ext= mySmartUpload.getFiles().getFile(0).getFileExt();
//取得文件的大小
int fileSize=myFile.getSize();
//保存路径
String trace="c:/"+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);
//打开数据库
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, "aaa");
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对应
%>
import java.sql.*;
import javax.servlet.jsp.PageContext;public class Upload
{
upload.SmartUpload smartUpload = new upload.SmartUpload();
common.DB db = new common.DB();
upload.File myFile; public final void initialize(PageContext pageContext)throws Exception
{
smartUpload.initialize(pageContext);
smartUpload.setAllowedFilesList(syscfg.GetSys.getAllowedFilesList());
smartUpload.setMaxFileSize(syscfg.GetSys.getMaxFileSize());
} public int getValue(String valueName)throws Exception
{ String sql = "SELECT var_value FROM variables where var_name='"+valueName+"'";
ResultSet rs = db.query(sql);
rs.next();
int uploadfile = rs.getInt("var_value"); sql = "update variables set var_value=var_value+1 where var_name='"+valueName+"'";
db.query(sql); return uploadfile; } public String upload()throws Exception
{
String fileName = "";
smartUpload.upload();
myFile = smartUpload.getFiles().getFile(0); if (!myFile.isMissing())
{
fileName = getValue("uploadfile")+"."+myFile.getFileExt();
if(myFile.getSize()>syscfg.GetSys.getOutFileMinSize()){
outToFile(fileName);
}else{
outToDB(fileName);
}
}
return fileName;
} private void outToFile(String fileName)throws Exception
{
myFile.saveAs(syscfg.GetSys.getFileSavePath()+fileName);
} private void outToDB(String fileName)throws Exception
{
String sql = "insert into upload_file (filename,filesize,filecontent) values ";
sql += "('"+fileName+"','"+myFile.getSize()+"','"+common.WordOperate.toEncoding(myFile.getContentString())+"')"; db.query(sql);
} public upload.File getFile()
{
return myFile;
}
public upload.Request getRequest()
{
return smartUpload.getRequest();
}}
***************************************************
if(myFile.getSize()>syscfg.GetSys.getOutFileMinSize()){
这里是判断一下大小,小文件存数据库,大文件存服务器文件