求Struts文件上传下载 有没有人帮帮忙啊。[email protected] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是一篇关于《上传下载全攻略jspSmartUpload》http://bbs.itebook.net/viewthread.php?tid=81641 还有:http://blog.csdn.net/oliveyuganfei/archive/2004/11/08/172704.aspx原理是一样的,你自己琢磨! 我想知的是写SQL的那段。现在比较急啊,而我写的那个又出错了。真是没办法。所以想求一个源码。 作zip的话就可以传上去,public void updateDate(ByteArrayOutputStream byteOut) { ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray()); Connection conn = null; try { Class.forName(driver).newInstance(); conn = DriverManager.getConnection(url, username, password); ZipInputStream zip = new ZipInputStream(byteIn); InputStream in = (InputStream) zip; String sql = "UPDATE data SET content=? WHERE id=106;"; PreparedStatement s = conn.prepareStatement(sql); s.setBinaryStream(1, byteIn, byteIn.available()); s.executeUpdate(); System.out.println("数据已经更新!"); }catch (SQLException e){ e.printStackTrace(); }catch(ClassNotFoundException e){ e.printStackTrace(); }catch(Exception e){ e.printStackTrace(); } } 我自己在struts中有做过文件上传功能,我把代码给你看看了 <?xml version='1.0' encoding='GB2312'?><?xml-stylesheet type='text/xsl' href='/expert/Xsl/2.xsl'?><Topic><Issue><PostUserNickName>wubai</PostUserNickName><rank>一级(初级)</rank><ranknum>user1</ranknum><credit>100</credit><TopicId>3227606</TopicId><TopicName>哪位能提供一个简单的struts上传文件例子</TopicName><PostUserId>667076</PostUserId><PostUserName>wubai250</PostUserName><RoomName>Java  JSP/Servlet/JavaBean</RoomName><ReplyNum>3</ReplyNum><PostDateTime>2004-7-30 16:50:16</PostDateTime><Point>21</Point><ReadNum>21</ReadNum><RoomId>5409</RoomId><EndState>1</EndState><Content><![CDATA[哪位能提供一个简单的struts上传文件例子先谢了]]></Content></Issue><Replys><Reply><PostUserNickName>java+Linux</PostUserNickName><rank>二级(初级)</rank><ranknum>user2</ranknum><credit>96</credit><ReplyID>22792674</ReplyID><TopicID>3227606</TopicID><PostUserId>478864</PostUserId><PostUserName>noscar</PostUserName><Point>14</Point><Content><![CDATA[action:package welcome;import org.apache.struts.action.*;import javax.servlet.http.*;import welcome.*;import org.apache.struts.upload.FormFile;import java.io.*;public class fileAction extends Action { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { DynaActionForm fileactionForm = (DynaActionForm) actionForm; if(fileactionForm!=null) { System.out.println("formbean is not null"); FormFile file=(FormFile)fileactionForm.get("file1"); if(file!=null) { System.out.println("file is not null"); String name=file.getFileName(); System.out.println("name:"+name); try{ byte[] content1 = file.getFileData(); String content2=new String(content1); File file1=new File("f:\\"+name); FileOutputStream out=new FileOutputStream(file1); out.write(content1); out.close(); System.out.println(content2); } catch(Exception e_22) { System.out.println(e_22); } } } return actionMapping.findForward("back"); }}formbean:package welcome;import java.io.*;import org.apache.struts.action.*;import javax.servlet.http.*;import org.apache.struts.upload.FormFile;public class fileActionForm extends ActionForm { public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) { /**@todo: finish this method, this is just the skeleton.*/ return null; } private FormFile file1; public void setFile1(FormFile file1) { this.file1=file1; } public FormFile getFile1() { return this.file1; } public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest) { }}xml:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"><struts-config> <form-beans> <form-bean name="fileactionForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="file1" type="org.apache.struts.upload.FormFile"/> </form-bean> </form-beans> <action-mappings> <action name="fileactionForm" path="/fileaction" scope="request" type="welcome.fileAction"> <forward name="back" path="/jsp1.jsp"> </forward> </action> </action-mappings></struts-config>jsp:<%@ page contentType="text/html; charset=GBK" %><html><head><title>jsp1</title></head><body bgcolor="#ffffff"><form method="post" action="/WebModule1/fileaction.do" enctype="multipart/form-data"><input type="file" name="file1"><input type="submit" name="Submit" value="Submit"><input type="reset" value="Reset"></form></body></html>/////////WebModule1 是我自己的 WebModule 的名字,要换成你自己的袄, ,,,,,,,,,(要给我分袄,我要 升级了啊! 谢谢), 这个程序一定是对的袄,,,,,,]]></Content><PostDateTime>2004-7-30 17:55:25</PostDateTime></Reply><Reply><PostUserNickName>枫</PostUserNickName><rank>三级(初级)</rank><ranknum>user3</ranknum><credit>99</credit><ReplyID>22792998</ReplyID><TopicID>3227606</TopicID><PostUserId>621081</PostUserId><PostUserName>discolt</PostUserName><Point>7</Point><Content><![CDATA[struts 自带的 Upload Example]]></Content><PostDateTime>2004-7-30 18:05:20</PostDateTime></Reply><Reply><PostUserNickName>wubai</PostUserNickName><rank>一级(初级)</rank><ranknum>user1</ranknum><credit>100</credit><ReplyID>22834258</ReplyID><TopicID>3227606</TopicID><PostUserId>667076</PostUserId><PostUserName>wubai250</PostUserName><Point>0</Point><Content><![CDATA[好在加10分(本人现共有13分)先给分,在研究回贴!]]></Content><PostDateTime>2004-8-2 9:08:35</PostDateTime></Reply></Replys></Topic> 到我的BLOG找http://blog.csdn.net/oliveyuganfei struts直接就支持文件上传的,它有file标记,和相应的获取办法,查查书吧《struts start stick》好象是这本书有 to linsr() :程式不对啊,java.lang.NullPointerException org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:1003) org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:955) org.apache.struts.action.ActionServlet.init(ActionServlet.java:470) javax.servlet.GenericServlet.init(GenericServlet.java:211) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:793) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:702) org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:571) org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:644) java.lang.Thread.run(Unknown Source) 写入路径的我已写完了。但不知用stream写入数据库的怎么做。就是说将文件写入数据库。最好有源码。分可以再加。大家帮帮忙啊。 >>正则表达式匹配>>> 请教高手谁帮我远程一下啊! struts中关于页面跳转问题?? SQL在JAVA中的拼凑问题 (在线等待中。。。。。。。) 事务能否嵌套?能的话应该怎么写?有什么作用?不能的话为什么? 小菜读取数据库表里的所有数据问题? 我自己做个一个JAVA网上考试系统的后台, 初级问题 Deployment Descriptor视图无法显示的问题 求java大神帮忙,java使用MAVEN编译时提示找不到类,但是类是属于rt.jar的 static{} commons-fileupload-1.0上传的问题
http://bbs.itebook.net/viewthread.php?tid=81641
http://blog.csdn.net/oliveyuganfei/archive/2004/11/08/172704.aspx原理是一样的,你自己琢磨!
public void updateDate(ByteArrayOutputStream byteOut)
{
ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());
Connection conn = null;
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url, username, password);
ZipInputStream zip = new ZipInputStream(byteIn);
InputStream in = (InputStream) zip;
String sql = "UPDATE data SET content=? WHERE id=106;";
PreparedStatement s = conn.prepareStatement(sql);
s.setBinaryStream(1, byteIn, byteIn.available());
s.executeUpdate();
System.out.println("数据已经更新!");
}catch (SQLException e){
e.printStackTrace();
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
}
<?xml-stylesheet type='text/xsl' href='/expert/Xsl/2.xsl'?>
<Topic>
<Issue>
<PostUserNickName>wubai</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>100</credit>
<TopicId>3227606</TopicId>
<TopicName>哪位能提供一个简单的struts上传文件例子</TopicName>
<PostUserId>667076</PostUserId>
<PostUserName>wubai250</PostUserName>
<RoomName>Java  JSP/Servlet/JavaBean</RoomName>
<ReplyNum>3</ReplyNum>
<PostDateTime>2004-7-30 16:50:16</PostDateTime>
<Point>21</Point>
<ReadNum>21</ReadNum>
<RoomId>5409</RoomId>
<EndState>1</EndState>
<Content>
<![CDATA[哪位能提供一个简单的struts上传文件例子先谢了
]]>
</Content>
</Issue>
<Replys>
<Reply>
<PostUserNickName>java+Linux</PostUserNickName>
<rank>二级(初级)</rank>
<ranknum>user2</ranknum>
<credit>96</credit>
<ReplyID>22792674</ReplyID>
<TopicID>3227606</TopicID>
<PostUserId>478864</PostUserId>
<PostUserName>noscar</PostUserName>
<Point>14</Point>
<Content>
<![CDATA[
action:
package welcome;import org.apache.struts.action.*;
import javax.servlet.http.*;
import welcome.*;
import org.apache.struts.upload.FormFile;
import java.io.*;
public class fileAction extends Action {
public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { DynaActionForm fileactionForm = (DynaActionForm) actionForm;
if(fileactionForm!=null)
{
System.out.println("formbean is not null");
FormFile file=(FormFile)fileactionForm.get("file1");
if(file!=null)
{
System.out.println("file is not null");
String name=file.getFileName();
System.out.println("name:"+name);
try{
byte[] content1 = file.getFileData();
String content2=new String(content1);
File file1=new File("f:\\"+name);
FileOutputStream out=new FileOutputStream(file1);
out.write(content1);
out.close();
System.out.println(content2);
}
catch(Exception e_22)
{
System.out.println(e_22);
}
} }
return actionMapping.findForward("back");
}
}formbean:
package welcome;
import java.io.*;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import org.apache.struts.upload.FormFile;public class fileActionForm extends ActionForm {
public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
/**@todo: finish this method, this is just the skeleton.*/
return null;
}
private FormFile file1;
public void setFile1(FormFile file1)
{
this.file1=file1;
}
public FormFile getFile1()
{
return this.file1;
}
public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
}
}xml:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="fileactionForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="file1" type="org.apache.struts.upload.FormFile"/>
</form-bean>
</form-beans>
<action-mappings>
<action name="fileactionForm" path="/fileaction" scope="request" type="welcome.fileAction">
<forward name="back" path="/jsp1.jsp">
</forward>
</action>
</action-mappings>
</struts-config>
jsp:<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
jsp1
</title>
</head>
<body bgcolor="#ffffff">
<form method="post" action="/WebModule1/fileaction.do" enctype="multipart/form-data">
<input type="file" name="file1">
<input type="submit" name="Submit" value="Submit">
<input type="reset" value="Reset">
</form>
</body>
</html>
/////////WebModule1 是我自己的 WebModule 的名字,要换成你自己的袄, ,,,,,,,,,(要给我分袄,我要 升级了啊! 谢谢), 这个程序一定是对的袄,,,,,,
]]>
</Content>
<PostDateTime>2004-7-30 17:55:25</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>枫</PostUserNickName>
<rank>三级(初级)</rank>
<ranknum>user3</ranknum>
<credit>99</credit>
<ReplyID>22792998</ReplyID>
<TopicID>3227606</TopicID>
<PostUserId>621081</PostUserId>
<PostUserName>discolt</PostUserName>
<Point>7</Point>
<Content>
<![CDATA[
struts 自带的 Upload Example
]]>
</Content>
<PostDateTime>2004-7-30 18:05:20</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>wubai</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>100</credit>
<ReplyID>22834258</ReplyID>
<TopicID>3227606</TopicID>
<PostUserId>667076</PostUserId>
<PostUserName>wubai250</PostUserName>
<Point>0</Point>
<Content>
<![CDATA[
好在加10分(本人现共有13分)先给分,在研究回贴!
]]>
</Content>
<PostDateTime>2004-8-2 9:08:35</PostDateTime>
</Reply>
</Replys>
</Topic>
http://blog.csdn.net/oliveyuganfei
程式不对啊,
java.lang.NullPointerException
org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:1003)
org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:955)
org.apache.struts.action.ActionServlet.init(ActionServlet.java:470)
javax.servlet.GenericServlet.init(GenericServlet.java:211)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:793)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:702)
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:571)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:644)
java.lang.Thread.run(Unknown Source)