jsp多文件上传到数据库

合集下载

SpringMVC使用MultipartFile文件上传配置,多文件上传

SpringMVC使用MultipartFile文件上传配置,多文件上传

SpringMVC使用MultipartFile文件上传配置,多文件上传,.基本的SpringMVC的搭建在我的上一篇文章里已经写过了,这篇文章主要说明一下如何使用SpringMVC进行表单上的文件上传以及多个文件同时上传的步骤一、配置文件:SpringMVC 用的是的MultipartFile来进行文件上传所以我们首先要配置MultipartResolver:用于处理表单中的file1.<!-- 配置MultipartResolver 用于文件上传使用spring的CommosMultipartResolver -->2.<beans:bean id="multipartResolver"class="org.springframework.web.multipmonsMultipartResolver"3.p:defaultEncoding="UTF-8"4.p:maxUploadSize="5400000"5.p:uploadTempDir="fileUpload/temp"6.>7.</beans:bean>其中属性详解:defaultEncoding="UTF-8"是请求的编码格式,默认为iso-8859-1maxUploadSize="5400000"是上传文件的大小,单位为字节uploadTempDir="fileUpload/temp"为上传文件的临时路径二、创建一个简单的上传表单:1.<body>2.<h2>文件上传实例</h2>3.4.5.<form action="fileUpload.html"method="post"enctype="multipart/form-data">6.选择文件:<input type="file"name="file">7.<input type="submit"value="提交">8.</form>9.10.11.</body>注意要在form标签中加上enctype="multipart/form-data"表示该表单是要处理文件的,这是最基本的东西,很多人会忘记然而当上传出错后则去找程序的错误,却忘了这一点三、编写上传控制类1、创建一个控制类: FileUploadController和一个返回结果的页面list.jsp2、编写提交表单的action:1.//通过Spring的autowired注解获取spring默认配置的request2.@Autowired3.private HttpServletRequest request;4.5./***6. * 上传文件用@RequestParam注解来指定表单上的file为MultipartFile7. *8. * @param file9. * @return10. */11.@RequestMapping("fileUpload")12.public String fileUpload(@RequestParam("file") MultipartFile file) {13.// 判断文件是否为空14.if (!file.isEmpty()) {15.try {16.// 文件保存路径17. String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/"18. + file.getOriginalFilename();19.// 转存文件20. file.transferTo(new File(filePath));21. } catch (Exception e) {22. e.printStackTrace();23. }24. }25.// 重定向26.return"redirect:/list.html";27. }28.29./***30. * 读取上传文件中得所有文件并返回31. *32. * @return33. */34.@RequestMapping("list")35.public ModelAndView list() {36. String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/";37. ModelAndView mav = new ModelAndView("list");38. File uploadDest = new File(filePath);39. String[] fileNames = uploadDest.list();40.for (int i = 0; i < fileNames.length; i++) {41.//打印出文件名42. System.out.println(fileNames[i]);43. }44.return mav;45. }3、使用SpringMVC注解RequestParam来指定表单中的file参数;4、指定一个用于保存文件的web项目路径5、通过MultipartFile的transferTo(File dest)这个方法来转存文件到指定的路径。

用JSP实现拖拽上传文件和文件夹

用JSP实现拖拽上传文件和文件夹

用JSP实现拖拽上传文件和文件夹JSP(JavaServer Pages)是一种动态网页技术,允许将Java代码嵌入到HTML页面中。

拖拽上传文件和文件夹是一种常见的网页交互功能,可以使用JSP来实现。

在实现拖拽上传文件和文件夹功能之前,首先需要了解一下拖拽上传的基本原理。

在HTML中,可以通过Drag and Drop API来获取拖拽的文件和文件夹。

然后,可以使用JavaScript将拖拽的文件和文件夹发送到服务器端,服务器端可以使用JSP来处理这些文件和文件夹。

以下是一个基本的实现拖拽上传文件的JSP页面的示例:```htmlpageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>拖拽上传文件</title><script>function handleDrop(event)event.preventDefault(; // 禁止浏览器打开文件var files = event.dataTransfer.files;//遍历上传的文件for (var i = 0; i < files.length; i++)var file = files[i];// 创建FormData对象,用于发送文件到服务器var formData = new FormData(;formData.append("file", file);// 创建一个XMLHttpRequest对象,发送文件到服务器var xhr = new XMLHttpRequest(;xhr.open("POST", "upload.jsp", true);xhr.onreadystatechange = functioif (xhr.readyState == 4 && xhr.status == 200)//上传成功console.log(xhr.responseText);}};xhr.send(formData);}}</script></head><body ondragover="event.preventDefault(;"ondrop="handleDrop(event);"><h1>拖拽上传文件</h1><p>将文件拖拽到此处上传</p></body></html>```当文件被拖拽到页面的时候,`handleDrop(`函数会被调用。

用JSP编写文件上传

用JSP编写文件上传

用JSP编写文件上传袁毅:2000-10-23如果你曾用VB编写文件上传的组件的话,那么用JAVA编写文件上传的JAVABEAN十分容易。

下面的例子只是一个简版package yuanyifileup;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.jsp.PageContext;public class yuanyifileup{private ServletRequest request;private ServletResponse response;private ServletConfig config;ServletInputStream DATA;int FormSize;File f1;FileOutputStream os;DataInputStream is;String filename;byte[] b;byte t;boolean flag=false;public yuanyifileup(){ }public void initialize(ServletConfig config,HttpServletRequest request,HttpServlet Response response) throws IOException{this.request=request;this.response=response;this.config=config;DATA = request.getInputStream();FormSize=request.getContentLength();}public void initialize(PageContext pageContext) throws IOException{request=pageContext.getRequest();response=pageContext.getResponse();config=pageContext.getServletConfig();DATA = request.getInputStream();FormSize=request.getContentLength(); }public boolean setFilename(String s) {try{File f1=new File(s);os=new FileOutputStream(f1);}catch(IOException e){return(false);}return(true);}public void getByte(){int i=0;try{is=new DataInputStream(DATA);b=new byte[FormSize];while (true){try{t=is.readByte();b[i]=t;i++;}catch(EOFException e) { break;}}is.close();}catch(IOException e) {}}public boolean save() {int i=0,start1=0,start2=0; String temp="";if (!flag){getByte();flag=true;}try{temp=new String(b,"ISO8859_1");}catch(UnsupportedEncodingException e) {return(false);}start1=temp.indexOf("image/");temp=temp.substring(start1);start1=temp.indexOf("");temp=temp.substring(start1+4);start2=temp.indexOf(";");if (start2!=-1){temp=temp.substring(0,start2);}try{byte[] img=temp.getBytes("ISO8859_1");for (i=0;i<img.length;i++){ os.write(img[i]); }os.close();}catch(IOException e){return(false);}return(true);}如果有不明白的发E-Mail:yymailbox@.Bye }。

jsp连接数据库代码大全

jsp连接数据库代码大全

jsp连接数据库代码大全时间:2009-07-13 15:47来源:网络作者:编辑点击:68 次我要投稿注册IT家园现在初学jsp的网友常问数据库怎么连接啊,怎么老出错啊?这里写了篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里未必是好的做法,但是有利于初学者学习,所以我就这样做了,当大家学到一定程度的时候,可以考虑用MVC的模式开发。

在练习这些代码的时候,你一定将jdbc的驱动程序放到服务器的类路径里,然后要在数据库里建一个表test,有两个字段比如为test1,test2,可以用下面SQL建create table test(test1 varchar(20),test2 varchar(20)然后向这个表写入一条测试纪录那么现在开始我们的jsp和数据库之旅吧。

一、jsp连接Oracle8/8i/9i数据库(用thin模式)testoracle.jsp如下:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><html><body><%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();String url="jdbc:oracle:thin:@localhost:1521:orcl";//orcl为你的数据库的SIDString user="scott";String password="tiger";Connection conn= DriverManager.getConnection(url,user,password);Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDA TABLE);String sql="select * from test";ResultSet rs=stmt.executeQuery(sql);while(rs.next()) {%>您的第一个字段内容为:<%=rs.getString(1)%>您的第二个字段内容为:<%=rs.getString(2)%><%}%><%out.print("数据库操作成功,恭喜你");%><%rs.close();stmt.close();conn.close();%></body></html>二、jsp连接Sql Server7.0/2000数据库testsqlserver.jsp如下:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><html><body><%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();String url="jdbc:microsoft: sqlserver://localhost:1433;DatabaseName=pubs";//pubs为你的数据库的String user="sa";String password="";Connection conn= DriverManager.getConnection(url,user,password);Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDA TABLE);String sql="select * from test";ResultSet rs=stmt.executeQuery(sql);while(rs.next()) {%>您的第一个字段内容为:<%=rs.getString(1)%>您的第二个字段内容为:<%=rs.getString(2)%><%}%><%out.print("数据库操作成功,恭喜你");%><%rs.close();stmt.close();conn.close();%></body></html>三、jsp连接DB2数据库testdb2.jsp如下:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><html><body><%Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();String url="jdbc: db2://localhost:5000/sample";//sample为你的数据库名String user="admin";String password="";Connection conn= DriverManager.getConnection(url,user,password);Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDA TABLE);String sql="select * from test";ResultSet rs=stmt.executeQuery(sql);while(rs.next()) {%>您的第一个字段内容为:<%=rs.getString(1)%>您的第二个字段内容为:<%=rs.getString(2)%><%}%><%out.print("数据库操作成功,恭喜你");%><%rs.close();stmt.close();conn.close();%></body></html>四、jsp连接Informix数据库testinformix.jsp如下:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><html><body><%Class.forName("rmix.jdbc.IfxDriver").newInstance();String url ="jdbc:informix- sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver;user=testuser;password=testpassword";//testDB为你的数据库名Connection conn= DriverManager.getConnection(url);Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDA TABLE);String sql="select * from test";ResultSet rs=stmt.executeQuery(sql);while(rs.next()) {%>您的第一个字段内容为:<%=rs.getString(1)%>您的第二个字段内容为:<%=rs.getString(2)%><%}%><%out.print("数据库操作成功,恭喜你");%><%rs.close();stmt.close();conn.close();%></body></html>五、jsp连接Sybase数据库testmysql.jsp如下:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><html><body><%Class.forName("com.sybase.jdbc.SybDriver").newInstance();String url =" jdbc:sybase:Tds:localhost:5007/tsdata";//tsdata为你的数据库名Properties sysProps = System.getProperties();SysProps.put("user","userid");SysProps.put("password","user_password");Connection conn= DriverManager.getConnection(url, SysProps);Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDA TABLE);String sql="select * from test";ResultSet rs=stmt.executeQuery(sql);while(rs.next()) {%>您的第一个字段内容为:<%=rs.getString(1)%>您的第二个字段内容为:<%=rs.getString(2)%><%}%><%out.print("数据库操作成功,恭喜你");%><%rs.close();stmt.close();conn.close();%></body></html>六、jsp连接MySQL数据库testmysql.jsp如下:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><html><body><%Class.forName("org.gjt.mm.mysql.Driver").newInstance();String url ="jdbc: mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncodin g=8859_1"//testDB为你的数据库名Connection conn= DriverManager.getConnection(url);Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDA TABLE);String sql="select * from test";ResultSet rs=stmt.executeQuery(sql);while(rs.next()) {%>您的第一个字段内容为:<%=rs.getString(1)%>您的第二个字段内容为:<%=rs.getString(2)%><%}%><%out.print("数据库操作成功,恭喜你");%><%rs.close();stmt.close();conn.close();%></body></html>七、jsp连接PostgreSQL数据库testmysql.jsp如下:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><html><body><%Class.forName("org.postgresql.Driver").newInstance();String url ="jdbc: postgresql://localhost/soft"//soft为你的数据库名String user="myuser";String password="mypassword";Connection conn= DriverManager.getConnection(url,user,password);Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDA TABLE);String sql="select * from test";ResultSet rs=stmt.executeQuery(sql);while(rs.next()) {%>您的第一个字段内容为:<%=rs.getString(1)%>您的第二个字段内容为:<%=rs.getString(2)%><%}%><%out.print("数据库操作成功,恭喜你");%><%rs.close();stmt.close();conn.close();%></body></html>文章来自: 中国IT在线() 详文参考:/tech/program/other/1132.html。

用JSP实现XML文件到Oracle数据库的导入和导出

用JSP实现XML文件到Oracle数据库的导入和导出
22 境 配 置 .环
32数据 源 设 置 .
Sr g r e =”rc . h .r e. rce r e” t n i r oal j c i r a l i r : i dv ed d v O D v
Sr g r=” b : al: i: oahs 12 :R I tn l j co c t n@l lot O C i u d r eh c :5 1 ”
到 Orc 数 据 库 的 导 入 和 导 出 。 a1 e
[ 键 词 ]A A J 关 J V DOM 存储 过 程 遍 历 1XML的实 现 平 台 . 改 其 名 为 c se .i l ss2 a a 1j・ 测试通过, 可以访 问数据庳 , 环境配置完毕 3XML文件 到 Orce数 据 库 导 入 与 导 出 具体 实现 . al
科技信息
计 算机 与 网络
用J SP实 坝 XML文 件 到 Orce数 据 库 昀 导 兀和 导 出 al
宁夏 固原 市 医院信 息科 周德 军
[ 摘 要 ] 阶 段 比 较 成 熟 稳 定 的 J VA平 台 , 体 实现 技 术 为 J 现 A 具 DK] ) o . +丁 m㈨ + b m + 6( H1e 0Ⅲ I 1 J p为枝 术 实现 XM I e, S 9以 文件
我 们 知 道 D M 是 用 于 与平 台 和 语 言 无 关 的 方 式 表 示 XML文 档 的 O 官 方 W3 C标 准 , 用 D M 和 S XA I 以解 析 和处 理 XMI文 档 。这 利 O A P 可
里我们介 绍的 J O D M是基于树操作的纯 J V P , 该说它 提供的是 A A A I应 套用于解 析 、 创建 、 处理 和文现 XML的解决方案 。这些 A I D P 比 OM 和 S P 提供的方法更为直观 ,对 有 J V AXA I A A经验 的程序员将会 发 现 J OM非 常 容易 掌 握 。J O 处 理 X D DM ML的方 式 比 D OM 容 易 的 多 , 并 且 它 的功 能 比使 _ AX更 加 强 大 [S f J J OM的 内部 逻辑结 构基本 』与 DO D M的 相 同,比如具 有 D — ∞U metEe etC m n 等文档节点类型 ,其 中每一个 J O n 、lm n 、o met D M文档必 须 有 一 个 D m n 节 点 , 且 为 节 点 树 的 根 节 点 。 陔根 节 点 可 以有 子 节 u e t 并 点或者叶子节点如 C m n 、et o metT x 等。J M文档 中的每一个节点类型 DO 均 对应格 式 良好的 XML文当 中的没 一个 元素 。这也 就 为我 们利 用 J M转换数据库到 X DO ML文档提供 r可操作的依据。

jsp实现文件上传和下载

jsp实现文件上传和下载

1 JSP文件上传简单实例1、index.html代码:<html><head><title>上传图片</title></head><body><form action="do_upload.jsp" method="post" enctype="multipart/form-data"><input type="file" name="Photo"><input type="submit" value="上传"></form></body></html>2、使用到的函数和类说明File类文件和目录路径名的抽象表示形式,File(parent,child)方法根据parent 抽象路径名和child 路径名字符串创建一个新File实例FileOutputStream文件输出流,InputStream输入流,将输入数据看成一根管道,可以形象的将输入流比喻成管道的入口,而输出流比喻成管道的出口。

read(byte[] b) 从此输入流中将最多 b.length 个字节的数据读入一个字节数组中。

read() 从此输入流中读取一个数据字节。

write(int b) 将指定字节写入此文件输出流,write(byte[] b, int off, int len) 将指定字节数组中从偏移量off 开始的len 个字节写入此文件输出流。

write(byte[] b) 将 b.length 个字节从指定字节数组写入此文件输出流中Random.readLine()逐行读入,Random.seek(int pos)设置到此文件开头测量到的文件指针偏移量,该位置发生下一个读取和写入操作,Random.getFilePointer()返回此文件当前偏移量,Random.readByte()此方法从该文件的当前文件指针开始读取第一个字节。

js实现文件上传功能后台使用MultipartFile

js实现文件上传功能后台使用MultipartFile

js实现文件上传功能后台使用MultipartFile在前端使用JavaScript实现文件上传功能,可以通过使用`FormData`对象来实现。

首先,我们需要创建一个HTML表单,并添加一个文件输入字段。

```html<form id="uploadForm"><input type="file" name="file" id="fileInput"><button type="submit">上传</button></form>```接下来,在JavaScript中,我们可以监听表单的提交事件,并在事件处理程序中获取文件数据,并将其发送到后台。

```javascriptdocument.getElementById('uploadForm').addEventListener('subm it', function(event)event.preventDefault(; // 阻止表单默认提交行为var fileInput = document.getElementById('fileInput');var file = fileInput.files[0];var formData = new FormData(;formData.append('file', file);//发送文件数据到后台var xhr = new XMLHttpRequest(;xhr.open('POST', '/upload'); // 替换成你的后台接口地址xhr.send(formData);});```在后台使用Spring框架时,可以使用`MultipartFile`来接收上传的文件。

JSP上传图片到数据库的例子

JSP上传图片到数据库的例子

现在想写个程序向数据库中插入图片路径(或则插入图片也可以)最好是插入图片的路径这样可插入任意大的图片...请高手指点一下思路..感激不尽1.通过显示层向数据库中插入图片2.在界面显示的时候是小图片(缩小过的)3.当点击查看大图片会显示图片(原来的大小)提供给你图片上传和显示的代码吧!希望对你有帮助我在程序代码里贴了向Mysql数据库写入image代码的程序,可是好多人都是Java的初学者,对于这段代码,他们无法将它转换成jsp,所以我在这在写一下用jsp怎样向数据库写入图像文件。

大家先在数据库建这样一张表,我下面的这些代码对任何数据库都通用,只要支持blob类型的只要大家将连接数据库的参数改一下就可以了。

SQL> create table image(id int,content varchar(200),image blob);如果在sqlserver2000的数据库中,可以将blob字段换为image类型,这在SqlServer2000中是新增的。

testimage.html文件内容如下:<HTML><HEAD><TITLE> Image File </TITLE><meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 "></HEAD><FORM METHOD=POST ACTION= "testimage.jsp "><INPUT TYPE= "text " NAME= "content "> <BR><INPUT TYPE= "file " NAME= "image "> <BR><INPUT TYPE= "submit "> </FORM><BODY></BODY></HTML>我们在Form的action里定义了一个动作testimage.jsp,它的内容如下:<%@ page contentType= "text/html;charset=gb2312 "%><%@ page import= "java.sql.* " %><%@ page import= "java.util.* "%><%@ page import= "java.text.* "%><%@ page import= "java.io.* "%><html><%Class.forName( "org.gjt.mm.mysql.Driver ").newInstance();String url= "jdbc:mysql://localhost/mysql?user=root&password=&useUnicode=true&characterEncoding=885 9_1 ";//其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改Connection conn= DriverManager.getConnection(url);String content=request.getParameter( "content ");String filename=request.getParameter( "image ");FileInputStream str=new FileInputStream(filename);String sql= "insert into test(id,content,image) values(1,?,?) ";PreparedStatement pstmt=dbconn.conn.prepareStatement(sql);pstmt.setString(1,content);pstmt.setBinaryStream(2,str,str.available());pstmt.execute();out.println( "Success,You Have Insert an Image Successfully ");%>下面我写一个测试image输出的例子看我们上面程序写的对不对,testimageout.jsp的内容如下:<%@ page contentType= "text/html;charset=gb2312 "%><%@ page import= "java.sql.* " %><%@ page import= "java.util.* "%><%@ page import= "java.text.* "%><%@ page import= "java.io.* "%><html><body><%Class.forName( "org.gjt.mm.mysql.Driver ").newInstance();String url= "jdbc:mysql://localhost/mysql?user=root&password=&useUnicode=true&characterEncoding=885 9_1 ";//其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改Connection conn= DriverManager.getConnection(url);String sql = "select image from test where id =1 ";Statement stmt=null;ResultSet rs=null;try{stmt=conn.createStatement();rs=stmt.executeQuery(sql);}catch(SQLException e){}while(rs.next()) {res.setContentType( "image/jpeg ");ServletOutputStream sout = response.getOutputStream();InputStream in = rs.getBinaryStream(1);byte b[] = new byte[0x7a120];for(int i = in.read(b); i != -1;){sout.write(b);in.read(b);}sout.flush();sout.close();}}catch(Exception e){System.out.println(e);}%></body></html>你运行这个程序,你就会看到刚才你写入美丽的图片就会显示在你面前。

struts2多文件上传下载

struts2多文件上传下载

struts2多文件上传下载文件上传:1,upload.jsp如下:<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%> <%@ taglib prefix="s" uri="/struts-tags"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><title>My JSP 'upload.jsp' starting page</title><!--下面script实现多文件上传--><script type ="text/javascript">function onMore(){var td =document.getElementById("more");varbr = document.createElement("br");var input = document.createElement("input");var button = document.createElement("input");input.type = "file";="file";button.type="button";button.value="删除";//当点击删除时,删除一行。

JSP上传文件到指定位置

JSP上传文件到指定位置

JSP上传文件到指定位置复制上传文件,上传文件到服务器指定位置,注意,提交表单需要制定enctype 的类型。

具体代码如下:Servlet 代码:/** 直接取上传的File */public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String targetPath = request.getRealPath(request.getContextPath());// 目标存储路径,服务器部署目录下request.setCharacterEncoding("UTF-8");try {DefaultFileItemFactory factory = new DefaultFileItemFactory();DiskFileUpload up = new DiskFileUpload(factory);List<FileItem> ls = up.parseRequest(request);for (FileItem file : ls) {if (file.isFormField()) { // 判断是文件还是文本信息System.out.println("表单参数名:" + file.getFieldName()+ ",表单参数值:" + file.getString("UTF-8"));} else {if (file.getName() != null && !file.getName()。

equals("")){ // 判断是否选择了文件File sFile = new File(file.getName());// 构造临时对象,此时文件暂存在服务器的内存当中File tFile = new File(targetPath, sFile.getName());if(tFile.exists()){System.out.println("同名文件已上传!");}else{//FileUtils.copyFileToDirectory(sFile, tFile);//直接复制并上传到服务器,自动生成上机目录,目录名称与上传文件的名称一致FileUtils.copyFile(sFile, tFile); // 直接复制并上传文件到服务器,直接在指定位置生成目标文件System.out.println("文件上传成功");if (tFile.isDirectory()) { // 删除上传文件FileUtils.deleteDirectory(tFile);} else if (tFile.isFile()) {tFile.delete();}System.out.println("文件删除成功");}} else {System.out.println("没有选择上传文件!");}}}} catch (FileUploadException e) {System.out.println("文件上传失败!");e.printStackTrace();}}Servlet配置:web.xml<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"xmlns="java.sun./xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee java.sun./xml/ns/javaee/web-app_2_5.xsd"><servlet><servlet-name>MyServlet</servlet-name><servlet-class>test.MyServlet</servlet-class> </servlet><servlet-mapping><servlet-name>MyServlet</servlet-name><url-pattern>/servlet/MyServlet</url-pattern> </servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>Html页面:<body><form method="post" action="servlet/MyServlet" encType="multipart/form-data" ><font color="blue">可直接发布zip文件</font> <br /> 发布流程文件 :<input type="file" name="processDef" /> <input type="submit" value="部署"/></form></body>。

Jsp页面实现文件上传下载

Jsp页面实现文件上传下载

Jsp页面实现文件上传下载第1 页jsp页面实现文件上传代码开发的过程见用TOMCAT作简单的jsp web开发名称:jsp页面上传类作者:SinNeRMail:vogoals[at]特点:1可以多文件上传;2返回上传后的文件名;3form表单中的其他参数也可以得到。

先贴上传类,JspFileUploadpackage com.vogoal.util;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.Hashtable;import javax.servlet.ServletInputStream;import javax.servlet.http.HttpServletRequest;/** vogoalAPI 1.0*************************** by *mail:********************//*** JSP上传文件类** @author SinNeR* @version 1.0*/public class JspFileUpload {/** request对象*/private HttpServletRequest request = null;/** 上传文件的路径*/private String uploadPath = null;/** 每次读取得字节的大小*/private static int BUFSIZE = 1024 * 8;/** 存储参数的Hashtable */private Hashtable paramHt = new Hasptable();/** 存储上传的文件的文件名的ArrayList */private ArrayList updFileArr = new ArrayList();/*** 设定request对象。

java 不同系统之间传输数据的方法

java 不同系统之间传输数据的方法

java 不同系统之间传输数据的方法Java是一种跨平台的编程语言,可以在不同的操作系统上运行。

在不同的系统之间传输数据,可以使用多种方法。

本文将介绍一些常用的方法,并提供一些指导意义。

1. 文件传输:一个常见的方法是使用文件传输来在不同系统之间传输数据。

可以使用Java的IO包中的文件读写方法来读取和写入文件。

可以将数据保存到一个文件中,然后在另一个系统上读取该文件。

这种方法适用于需要传输大量数据的情况。

2. 网络传输:另一种常见的方法是使用网络传输来在不同系统之间传输数据。

可以使用Java的网络编程功能来创建一个网络连接,然后使用套接字来发送和接收数据。

可以使用TCP/IP协议或UDP协议来发送数据。

这种方法适用于需要实时传输数据的情况,如实时游戏。

3. 数据库传输:如果需要在不同系统之间共享数据,可以使用数据库来传输数据。

可以使用Java的JDBC技术来连接数据库,并执行SQL语句来读取和写入数据。

可以使用关系型数据库如MySQL或Oracle,也可以使用非关系型数据库如MongoDB或Redis。

这种方法适用于需要多个系统之间共享和同步数据的情况。

4. Web服务:Java提供了许多用于创建Web服务的框架和库,如JAX-RS和Spring MVC。

可以使用这些框架来创建一个Web服务,然后在不同的系统之间通过HTTP协议传输数据。

可以使用JSON或XML格式来编码和解码数据。

这种方法适用于需要通过Web进行数据传输的情况,如Web应用程序或移动应用程序。

总结起来,Java在不同系统之间传输数据时可以使用文件传输、网络传输、数据库传输和Web服务等方法。

选择合适的方法取决于具体的需求和情况。

无论使用哪种方法,都需要确保数据的完整性和安全性。

在实施时,应考虑系统之间的兼容性和性能等问题。

希望本文提供的指导对于Java开发人员在不同系统之间传输数据时有所帮助。

加载js文件并传参数的方法

加载js文件并传参数的方法

加载js文件并传参数的方法加载js文件并传参数是在网页开发中常见的操作,它可以实现动态加载js文件,并且可以在加载时传递一些参数。

这样做的好处是可以减小网页的初始加载时间,并且可以根据需要动态加载不同的js 文件和参数。

在实际开发中,有多种方法可以实现加载js文件并传参的操作。

下面将介绍几种常用的方法。

一、使用script标签动态加载js文件最常见的方法是使用script标签动态加载js文件,并通过设置src属性来指定要加载的文件的路径。

在加载时,可以在url中通过查询参数的方式传递参数。

例如,假设有一个js文件路径为"/static/js/myScript.js",需要传递一个参数param1=abc,可以使用以下代码来动态加载并传参:```javascriptvar script = document.createElement('script');script.src = '/static/js/myScript.js?param1=abc'; document.head.appendChild(script);```这样,浏览器会根据指定的路径加载js文件,并在加载时传递参数param1=abc。

二、使用XMLHttpRequest对象加载js文件除了使用script标签,还可以使用XMLHttpRequest对象来加载js 文件。

这种方法可以更加灵活地控制加载过程,包括传递参数、处理加载完成事件等。

```javascriptvar xhr = new XMLHttpRequest();xhr.open('GET', '/static/js/myScript.js', true);xhr.onreadystatechange = function() {if (xhr.readyState === 4 && xhr.status === 200) {eval(xhr.responseText);}};xhr.send();```在这个示例中,使用XMLHttpRequest对象发送一个GET请求,请求路径为"/static/js/myScript.js",并在加载完成后通过eval函数执行加载的js代码。

JSP上传文件

JSP上传文件

UploadExample.jsp<%@ page contentType="text/html;charset=gb2312"%> <html><title><%= application.getServerInfo() %></title><body>上传文件程序应用示例<form action="doUpload.jsp" method="post"enctype="multipart/form-data"><%-- 类型enctype用multipart/form-data,这样可以把文件中的数据作为流式数据上传,不管是什么文件类型,均可上传。

--%>请选择要上传的文件<input type="file" name="upfile" size="50"><input type="submit" value="提交"></form></body></html>doUpload.jsp<%@ page contentType="text/html; charset=GBK" %> <%@ page import="java.io.*"%><%@ page import="java.util.*"%><%@ page import="javax.servlet.*"%><%@ page import="javax.servlet.http.*"%><html><head><title>upFile</title></head><body bgcolor="#ffffff"><%//定义上载文件的最大字节int MAX_SIZE = 102400 * 102400;// 创建根路径的保存变量String rootPath;//声明文件读入类DataInputStream in = null;FileOutputStream fileOut = null;//取得客户端的网络地址String remoteAddr = request.getRemoteAddr();//获得服务器的名字String serverName = request.getServerName();//取得互联网程序的绝对地址String realPath = request.getRealPath(serverName);realPath =realPath.substring(0,stIndexOf("\\"));//创建文件的保存目录rootPath = realPath + "\\upload\\";//取得客户端上传的数据类型String contentType = request.getContentType();try{if(contentType.indexOf("multipart/form-data") >= 0){ //读入上传的数据in = new DataInputStream(request.getInputStream()); int formDataLength = request.getContentLength();if(formDataLength > MAX_SIZE){out.println("<P>上传的文件字节数不可以超过" + MAX_SIZE + "</p>");return;}//保存上传文件的数据byte dataBytes[] = new byte[formDataLength];int byteRead = 0;int totalBytesRead = 0;//上传的数据保存在byte数组while(totalBytesRead < formDataLength){byteRead =in.read(dataBytes,totalBytesRead,formDataLength); totalBytesRead += byteRead;}//根据byte数组创建字符串String file = new String(dataBytes);//out.println(file);//取得上传的数据的文件名String saveFile =file.substring(file.indexOf("filename=\"") + 10); saveFile = saveFile.substring(0,saveFile.indexOf("\n")); saveFile = saveFile.substring(stIndexOf("\\") + 1,saveFile.indexOf("\""));int lastIndex = stIndexOf("=");//取得数据的分隔字符串String boundary = contentType.substring(lastIndex + 1,contentType.length());//创建保存路径的文件名String fileName = rootPath + saveFile;//out.print(fileName);int pos;pos = file.indexOf("filename=\"");pos = file.indexOf("\n",pos) + 1;pos = file.indexOf("\n",pos) + 1;pos = file.indexOf("\n",pos) + 1;int boundaryLocation = file.indexOf(boundary,pos) - 4; //out.println(boundaryLocation);//取得文件数据的开始的位置int startPos = ((file.substring(0,pos)).getBytes()).length; //out.println(startPos);//取得文件数据的结束的位置int endPos =((file.substring(0,boundaryLocation)).getBytes()).length; //out.println(endPos);//检查上载文件是否存在File checkFile = new File(fileName);if(checkFile.exists()){out.println("<p>" + saveFile + "文件已经存在.</p>"); }//检查上载文件的目录是否存在File fileDir = new File(rootPath);if(!fileDir.exists()){fileDir.mkdirs();}//创建文件的写出类fileOut = new FileOutputStream(fileName);//保存文件的数据fileOut.write(dataBytes,startPos,(endPos - startPos)); fileOut.close();out.println(saveFile + "文件成功上载.</p>");}else{String content = request.getContentType();out.println("<p>上传的数据类型不是multipart/form-data</p>");}}catch(Exception ex){throw new ServletException(ex.getMessage());}%></body></html>。

在JSP中实现文件上传下载的相关问题及改进方案

在JSP中实现文件上传下载的相关问题及改进方案

JP技术 , S 设计完成 B S / 模式的科 技综合信息管理系 统。在实际的设计过程中, 遇到了 文件上传及下载的
问题 , 于是查阅了许多相关 的资料 , 同时在 网络上参 与此类问题的讨论 , 从中发现基于 J S P平台的文件上 传下载存在诸多问题 , 缺乏系统的、 完善的解决办法。 本文提供笔者在应用 中遇到的问题及采取 的解决办 法, 并给出经过测试的部分关键源代码。
维普资讯
2 O 年第 1 O6 0期 文章编号 :0627 (06 1- 70 10-4 520 )0( .4  ̄
计 算 机 与 现 代 化 n l N Y IN AH A sy 且 U XA D I U A
总第 14期 3
在 JP中实现文件上传下载的相关 问题及 改进 方案 S
BS / 体系结构, 应用 网络协 同工作模 式 , 为科技项 目
的申报 、 评审 、 立项 、 进度跟踪 与资金管理 、 验收和评
奖等环节提供全方位的服务 , 实现合理化建议 和技改
项 目的在线 申报与鉴定 , 实现科技人员考核的业绩统 计和在线打分。并 由此实现科技信息内容管理与网 络发布, 在线生成科技管理业务报表 , 辅助领导决策 , 推进科技研发管理现代化。本系统的开发环境为: 服
先介绍一个 JP S 环境下用于文件一传下载的组件
S aU l d m r pod是 由 、v .pm r em 网站 m r p a。S aU l t o t a v、 i sa .o 、v s t
戴 洋, 陈 海
( 南昌大学信 息工程 学院, 江西 南 昌 30 9 3 2) 0 摘 要: 绍 J 环境下文件上传下载 的方法和工具 , 介 S P 对设计 实现 上传 文件 功能过程 中可能 遇到 的问题进行 分析 , 并结合

JSP jspSmartUpload上传组件

JSP  jspSmartUpload上传组件

JSP jspSmartUpload上传组件jspSmartUpload是由网站开发的一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中。

该组件有以下几个特点:●使用简单。

在JSP文件中仅仅书写三五行JA V A代码就可以完成文件的上传或下载。

●能全程控制上传。

利用jspSmartUpload组件提供的对象及其操作方法,可以获得上传文件的全部信息(包括文件名,大小,类型,扩展名,文件数据等),方便存取。

●能对上传的文件在大小、类型等方面做出限制。

由此可以滤掉不符合要求的文件。

●下载灵活。

仅写两行代码,就能把Web服务器变成文件服务器。

不管文件在Web服务器的目录下或在其他任何目录下,都可以利用jspSmartUpload进行下载。

●能将文件上传到数据库中,也能将数据库中的数据下载下来。

但这种功能只针对MYSQL数据库,不具有通用性。

jspSmartUpload组件可以从网站上自由下载,压缩包的名字是jspSmartUpload.zip。

下载后,用WinZip或WinRAR将其解压到Tomcat的webapps 目录下。

因为Tomcat对文件名大小写敏感,所以解压后,将webapps/jspsmartupload 目录下的子目录Web-inf名字改为全大写的WEB-INF,这样修改后jspSmartUpload 类才能使用。

注意,按上述方法安装后,只有webapps/jspsmartupload目录下的程序可以使用jspSmartUpload组件,如果想让Tomcat服务器的所有Web应用程序都能用它,必须用压缩软件将com目录下的所有文件压缩成jspSmartUpload.zip,将jspSmartUpload.zip换名为jspSmartUpload.jar文件,然后将jspSmartUpload.jar拷贝到Tomcat的shared/lib目录下。

下面简要介绍jspSmartUpload的几个类。

用JSP/Servlet实现文件上传

用JSP/Servlet实现文件上传

[ 文献标识码 ]A [ 文章编号]17— 55 ( 0) 302—4 6383 2 7 0-07 0 0
文件上传在很多网站应用中是必不可少的,在 电子商务中上传商品图片 ,在音乐网站中上传流行 歌 曲……一个高效率的文件上传功能尤为重要 。笔 者 主要 介 绍 用 JP方 式 和 Srlt 式 实 现 的 两个 S eve 方 代码简短又高效率的文件上传功能 。在此基础上 , 可 以对文 件上传 功 能进行 进一 步 的完 善 ,如 限制上
1c” ; et
方法 生成 Srlt p tt a ev I uSr m类 的对象 ,即 I 中 的 en e / 0
输人流对象。sr e nu t a ev t pt r m类提供了 pbi i lI s e ul t cn
ra Ln (ye[ b ito , t e ) trw aa o ed ie b t 】 , n fi n ho s v . . nl j i
维普资讯
第 1 7卷
第3 期
梧 州 学 院 学 报
J U N L O WU H U U I E ST O R A F Z O N V R IY
No3 Vo . 7 - 11
20 0 7年 6月
J n2 0 u .0 7
用 JPSrl 实现 文件上传 S /eve t

第 一 行 是 “ onay ,表 示 数 据 开 始 ,第 二 budr”
行是对数据 内容的捕述 、 表单 中 fe i 控件 的名称以 l

2 ・ 7
维普资讯
2 0 年 第 3期 07






第 1 7卷
及所 上 传 文件 的路 径 和文 件 名 ,第 三 行 是 文 件 类 型 ,第 四行 为一 空行 。从第 二行 数据 中取 出文件 扩 展 名后 ,可 以进行 上 传文件 类 型的控制 ,如 上传 图 片则 判 断 扩展 名 是 否 为 .f . g等格 式 ,上 传 音 g或J i P 频 文 件则 判 断扩 展 名 是 否为 .p m 3或 .m w a等 格 式 。 需 要注 意的 是 .如果 取 出的文 件路径 和 文件名 值 为

jsp导excel到mysql数据库

jsp导excel到mysql数据库

读到数据库,可以通过jxl来实现,可以把EXCEL文档上传到系统的上传目录下后,然后再取得这个文件,或者直接取得这个文件,对这个文件进行操作。

例子:public void addCustomerAssign(File file,SysExpo expo,SysUser user1)//添加客服中心数据{jxl.Workbook rwb = null;try{//构建Workbook对象, 只读Workbook对象//直接从本地文件创建Workbook//从输入流创建WorkbookInputStream is = new FileInputStream(file);rwb = Workbook.getWorkbook(is);String createTime = DateUtil.getDateTime( "yyyy-MM-dd HH:mm ",new Date()).toString();//Sheet(术语:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中//Sheet的下标是从0开始//获取第一张Sheet表Sheet rs = rwb.getSheet(0);//获取Sheet表中所包含的总列数// int rsColumns = rs.getColumns();//获取Sheet表中所包含的总行数int rsRows = rs.getRows();//获取指定单元格的对象引用// rs.getCell(列,行);for(int i=1;i <rsRows;i++){//如第一行为属性项则从第二行开始取数据(int i=0 ;i <rsRows;i++)//for(int j=0;j <rsColumns;j++){//Cell cell = rs.getCell(j,i);// System.out.print(cell.getContents()+ " ");// }//Cell cell = rs.getCell(0,i).getContents()+ " ";String cell1= rs.getCell(0,i).getContents()+ " ";//序号String cell7 = rs.getCell(6,i).getContents()+ " ";//公司名称if(cell1!=null&&!cell1.equals( " ")&&cell7!=null&&!cell7.equals( " "))//判断当前行是否为有效行是插入否找下行{Company company = new Company();company.setName(rs.getCell(0,i).getContents()+ " ");//1名称company.setManager(rs.getCell(1,i).getContents()+ " ");//2法人}}}catch(Exception e){e.printStackTrace();}finally{//操作完成时,关闭对象,释放占用的内存空间rwb.close();}}法二:Jsp 中由Excel 导入MySQL数据库(2009-11-15 20:18:49)转载标签:jspmysqlexcelittomysql.jsp<%@ page contentType="text/html; charset=GB2312" %><html><head><title>文件上载</title></head><body><form action="exceltoexcel" method="post">选择文件1:<input type="file" name="excel" /><input type="submit" value="导入" /></form></body></html>db.javapackage tomysql;import java.sql.*;public class db {public Connection connstr = null;public ResultSet res = null;public PreparedStatement prase=null;static private String strUrl ="jdbc:mysql://localhost:3306/wangzhan?useUnicode=true&characterEncoding=gb2312";static private String strUser = "root";static private String strPwd = "7820067";public db(){try{//Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//connstr = DriverManager.getConnection(//"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=BookStore",//"sa","7820067");Class.forName("com.mysql.jdbc.Driver");connstr = DriverManager.getConnection(strUrl, strUser, strPwd);}catch (SQLException ex){System.out.println(ex.getMessage() + "路径错误");}catch (ClassNotFoundException ex){System.out.println(ex.getMessage() + "驱动错误");}finally{System.out.println("成功了");}}public ResultSet executeQuery(String sql){try{Statement stmt=connstr.createStatement();res=stmt.executeQuery(sql);}catch(SQLException ex){System.out.println(ex.getMessage());}return res;}public PreparedStatement dosql(String sql){try{prase=connstr.prepareStatement(sql);}catch(Exception e){}return prase;}}excel.javapackage tomysql;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.util.*;import jxl.Sheet;import jxl.Workbook;public class excel {public List addCustomerAssign(File file)//添加客服中心数据{List ls=new ArrayList();jxl.Workbook rwb = null;try{//构建Workbook对象, 只读Workbook对象//直接从本地文件创建Workbook//从输入流创建WorkbookInputStream is = new FileInputStream(file);rwb = Workbook.getWorkbook(is);// String createTime = DateUtil.getDateTime( "yyyy-MM-dd HH:mm",new Date()).toString();//Sheet(术语:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中//Sheet的下标是从0开始//获取第一张Sheet表Sheet rs = rwb.getSheet(0);//获取Sheet表中所包含的总列数// int rsColumns = rs.getColumns();//获取Sheet表中所包含的总行数int rsRows = rs.getRows();//获取指定单元格的对象引用// rs.getCell(列,行);for(int i=1;i <rsRows;i++){//如第一行为属性项则从第二行开始取数据(int i=0 ;i <rsRows;i++)//for(int j=0;j <rsColumns;j++){//Cell cell = rs.getCell(j,i);// System.out.print(cell.getContents()+ " ");// }//Cell cell = rs.getCell(0,i).getContents()+ " ";String cell1= rs.getCell(0,i).getContents()+ " ";//序号String cell7 = rs.getCell(1,i).getContents()+ " ";//公司名称String cell8 = rs.getCell(1,i).getContents()+ " ";//公司名称if(cell1!=null&&!cell1.equals( " ")&&cell7!=null&&!cell7.equals( " "))//判断当前行是否为有效行是插入否找下行{mynews ms=new mynews();ms.setTitle(rs.getCell(0,i).getContents());//1名称ms.setAuthor(rs.getCell(1,i).getContents());//2法人ms.setContent(rs.getCell(2,i).getContents());ls.add(ms);}}}catch(Exception e){e.printStackTrace();}finally{//操作完成时,关闭对象,释放占用的内存空间rwb.close();}return ls;}}into.javapackage tomysql;import java.util.*;import java.sql.*;import java.io.*;public class into {String sql="insert into mynews(title,author,content) values(?,?,?)"; db data=new db();public PreparedStatement prase=null;public Boolean insertexcel(mynews ms) {Boolean jiaqi=false;try{prase=data.dosql(sql);prase.setString(1, ms.getTitle()); prase.setString(2, ms.getAuthor()); prase.setString(3, ms.getContent()); prase.executeUpdate();jiaqi=true;}catch(Exception e){e.printStackTrace();}return jiaqi;}}mynews.javapackage tomysql;public class mynews {private int id;private String title;private String author;private String content;public String getAuthor() {return author;}public void setAuthor(String author) { this.author = author;}public String getContent() {return content;}public void setContent(String content) { this.content = content;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) { this.title = title;}}---------------servlet---------------tomysqlservlet.javapackage tomysql;import java.io.File;import java.io.IOException;import java.io.PrintWriter;import java.util.*;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class tomysqlservlet extends HttpServlet {public tomysqlservlet() {super();}public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {into in=new into();excel ex=new excel();String path=request.getParameter("excel");File file=new File(path);List ls=ex.addCustomerAssign(file);Iterator iter=ls.iterator();while(iter.hasNext()){mynews ms=(mynews)iter.next();if(in.insertexcel(ms))System.out.println("成功");elseSystem.out.println("失败");}}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{doGet(request, response);}public void init() throws ServletException {// Put your code here}}。

用JSP实现拖拽上传文件和文件夹

用JSP实现拖拽上传文件和文件夹

作者简介: 李文轩(1975-),男,广东惠州人,工程师,供职于中国人民银行惠州市中心支行,副科长,研究方向:运维管理、网络 技术。 收稿日期: 2019-05-09
51
Research|技术应用
2019年·第7期
栏目编辑:梁丽雯 E-mail:liven_01@
dragleave:当元素离开drop元素时触发。例如,设 置按钮字体颜色恢复黑色。
button.ondragleave=function( ){this.st yle. color="#000";};
d r o p:在目标 元素上释放 拖 拽 元素 时 触 发,在 这 里处理上传操作。
button.ondrop=drop; function drop(evt) { ev t .pr event Def au lt( );//阻 止系统 隐含的处 理 方式 var button=evt.target; //获得用户 选择释放的目标文件夹 ……//开始进行处理 }
四、文ቤተ መጻሕፍቲ ባይዱ夹的处理
以 上 介 绍的是 对 文件 的上传。C h r o m e 浏 览 器 还
支 持文件 夹的上传,其获得 拖 拽 对 象的方 法 是ev t . dataTransfer.items。该items同样是一个集合,其中的每 个元素都要通过调用专用方法才能获得文件或文件夹 项目。
var entry=items[i].webkitGetAsEntry(); 项 目的 类 型 可 通 过 其 属 性 进 行 判 断:对 于 文 件类型,ent r y.isFi le为真;对于文件 夹类型,ent r y. isDirectory为真。 其中,文件类型的entry并非“标准”的文件object, 不能直接使用f ileReader的readAsArrayBuffer(entry) 方法读取,必须定义一个回调函数,通过entr y的f ile 功 能去调用回调函数,在回调函数中才 能 获得“文 件”object。 var files = new Array();//读取到的文件项目, 等待上传 var items = evt.dataTransfer.items; if (items==undefined) Alert("您的浏览器不支 持文件夹上传"); for(var i = 0; i < items.length; i++){ var entry = items[i].webkitGetAsEntry(); if(!entry) break; if(entry.isFile){//如果是文件entry entr y.f i le(getAFi le); } else {//如果是文件夹entry

jspstruts1struts2上传文件

jspstruts1struts2上传文件

一.在JSP环境中利用Commons-fileupload组件实现文件上传1.页面upload.jsp清单如下:Java代码1.<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>2.3.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.01 Transitional//EN">4.<html>5. <head>6. <title>The FileUpload Demo</title>7. </head>8.9. <body>10. <form action="UploadFile" method="post" enctype="multipart/form-data">11. <p><input type="text" name="fileinfo" value="">文件介绍</p>12. <p><input type="file" name="myfile" value="阅读文件"></p>13. <p><input type="submit" value="上传"></p>14. </form>15. </body>16.</html>注意:在上传表单中,既有一般文本域也有文件上传域2.FileUplaodServlet.java清单如下:Java代码1.package org.chris.fileupload;2.3.import java.io.File;4.import java.io.IOException;5.import java.util.Iterator;6.import java.util.List;7.8.import javax.servlet.ServletException;9.import javax.servlet.http.*;10.11.import org.apachemons.fileupload.FileItem;12.import org.apachemons.fileupload.FileItemFactory;13.import org.apachemons.fileupload.disk.DiskFileItemFactory;14.import org.apachemons.fileupload.servlet.ServletFileUpload;15.16.public class FileUplaodServlet extends HttpServlet {17.18. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {19. doPost(request, response);20. }21.22. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {23.24. request.setCharacterEncoding("UTF-8");25.26. //文件的上传部份27. boolean isMultipart = ServletFileUpload.isMultipartContent(request);28.29. if(isMultipart)30. {31. try {32. FileItemFactory factory = new DiskFileItemFactory();33. ServletFileUpload fileload = new ServletFileUpload(factory);34.35.// 设置最大文件尺寸,那个地址是4MB36. fileload.setSizeMax(4194304);37. List<FileItem> files = fileload.parseRequest(request);38. Iterator<FileItem> iterator = files.iterator();39. while(iterator.hasNext())40. {41. FileItem item = iterator.next();42. if(item.isFormField())43. {44. String name = item.getFieldName();45. String value = item.getString();46. System.out.println("表单域名为: " + name + "值为: " + value);47. }else48. {49. //取得取得文件名,此文件名包括途径50. String filename = item.getName();51. if(filename != null)52. {53. File file = new File(filename);54. //若是此文件存在55. if(file.exists()){56. File filetoserver = new File("d:\\upload\\",file.getName());57. item.write(filetoserver);58. System.out.println("文件 " + filetoserver.getName() + " 上传成功!!");59. }60. }61. }62. }63. } catch (Exception e) {64. System.out.println(e.getStackTrace());65. }66. }67. }68.}3.web.xml清单如下:Java代码1.<?xml version="1.0" encoding="UTF-8"?>2.<web-app version="2.4"3. xmlns="java.sun/xml/ns/j2ee"4. xmlns:xsi="/2001/XMLSchema-instance"5. xsi:schemaLocation="java.sun/xml/ns/j2ee6. java.sun/xml/ns/j2ee/web-app_2_4.xsd">7.8. <servlet>9. <servlet-name>UploadFileServlet</servlet-name>10. <servlet-class>11. org.chris.fileupload.FileUplaodServlet12. </servlet-class>13. </servlet>14.15. <servlet-mapping>16. <servlet-name>UploadFileServlet</servlet-name>17. <url-pattern>/UploadFile</url-pattern>18. </servlet-mapping>19.20. <welcome-file-list>21. <welcome-file>/Index.jsp</welcome-file>22. </welcome-file-list>23.24.</web-app>二.在strut1.2中实现1.上传页面file.jsp 清单如下:Java代码1.<%@ page language="java" pageEncoding="ISO-8859-1"%>2.<%@ taglib uri="/struts/tags-bean" prefix="bean"%>3.<%@ taglib uri="/struts/tags-html" prefix="html"%>4.5.<html>6. <head>7. <title>JSP for FileForm form</title>8. </head>9. <body>10. <html:form action="/file" enctype="multipart/form-data">11. <html:file property="file1"></html:file>12. <html:submit/><html:cancel/>13. </html:form>14. </body>15.</html>2.FileAtion.java的清单如下:Java代码1./*2. * Generated by MyEclipse Struts3. * Template path: templates/java/JavaClass.vtl4. */5.package action;6.7.import java.io.*;8.9.import javax.servlet.http.HttpServletRequest;10.import javax.servlet.http.HttpServletResponse;11.import org.apache.struts.action.Action;12.import org.apache.struts.action.ActionForm;13.import org.apache.struts.action.ActionForward;14.import org.apache.struts.action.ActionMapping;15.import org.apache.struts.upload.FormFile;16.17.import form.FileForm;18.19./**20. * @author Chris21. * Creation date: 6-27-202022. *23. * XDoclet definition:24. * @struts.action path="/file" name="fileForm" input="/file.jsp"25. */26.public class FileAction extends Action {27. /*28. * Generated Methods29. */30.31. /**32. * Method execute33. * @param mapping34. * @param form35. * @param request36. * @param response37. * @return ActionForward38. */39. public ActionForward execute(ActionMapping mapping, ActionForm form,40. HttpServletRequest request, HttpServletResponse response) {41. FileForm fileForm = (FileForm) form;42. FormFile file1=fileForm.getFile1();43. if(file1!=null){44. //上传途径45. String dir=request.getSession(true).getServletContext().getRealPath("/upload");46. OutputStream fos=null;47. try {48. fos=new FileOutputStream(dir+"/"+file1.getFileName());49. fos.write(file1.getFileData(),0,file1.getFileSize());50. fos.flush();51. } catch (Exception e) {52. // TODO Auto-generated catch block53. e.printStackTrace();54. }finally{55. try{56. fos.close();57. }catch(Exception e){}58. }59. }60. //页面跳转61. return mapping.findForward("success");62. }63.}3.FileForm.java的清单如下:Java代码1.package form;2.3.import javax.servlet.http.HttpServletRequest;4.import org.apache.struts.action.ActionErrors;5.import org.apache.struts.action.ActionForm;6.import org.apache.struts.action.ActionMapping;7.import org.apache.struts.upload.FormFile;8.9./**10. * @author Chris11. * Creation date: 6-27-202012. *13. * XDoclet definition:14. * @struts.form name="fileForm"15. */16.public class FileForm extends ActionForm {17. /*18. * Generated Methods19. */20. private FormFile file1;21. /**22. * Method validate23. * @param mapping24. * @param request25. * @return ActionErrors26. */27. public ActionErrors validate(ActionMapping mapping,28. HttpServletRequest request) {29. // TODO Auto-generated method stub30. return null;31. }32.33. /**34. * Method reset35. * @param mapping36. * @param request37. */38. public void reset(ActionMapping mapping, HttpServletRequest request) {39. // TODO Auto-generated method stub40. }41.42. public FormFile getFile1() {43. return file1;44. }45.46. public void setFile1(FormFile file1) {47. this.file1 = file1;48. }49.}4.struts-config.xml的清单如下:Java代码1.<?xml version="1.0" encoding="UTF-8"?>2.<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "/d tds/struts-config_1_2.dtd">3.4.<struts-config>5. <data-sources />6. <form-beans >7. <form-bean name="fileForm" type="form.FileForm" />8.9. </form-beans>10.11. <global-exceptions />12. <global-forwards />13. <action-mappings >14. <action15. attribute="fileForm"16. input="/file.jsp"17. name="fileForm"18. path="/file"19. type="action.FileAction"20. validate="false">21. <forward name="success" path="/file.jsp"></forward>22. </action>23.24. </action-mappings>25.26. <message-resources parameter="ApplicationResources" />27.</struts-config>5.web.xml代码清单如下:Java代码1.<?xml version="1.0" encoding="UTF-8"?>2.<web-app xmlns="java.sun/xml/ns/j2ee" xmlns:xsi="w/2001/XMLSchema-instance" version="2.4" xsi:schemaLocatio n="java.sun/xml/ns/j2ee java.sun/xml/ns/j2ee/web-app_2_4.xsd">3. <servlet>4. <servlet-name>action</servlet-name>5. <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>6. <init-param>7. <param-name>config</param-name>8. <param-value>/WEB-INF/struts-config.xml</param-value>9. </init-param>10. <init-param>11. <param-name>debug</param-name>12. <param-value>3</param-value>13. </init-param>14. <init-param>15. <param-name>detail</param-name>16. <param-value>3</param-value>17. </init-param>18. <load-on-startup>0</load-on-startup>19. </servlet>20. <servlet-mapping>21. <servlet-name>action</servlet-name>22. <url-pattern>*.do</url-pattern>23. </servlet-mapping>24.</web-app>三.在struts2中实现(以图片上传为例)1.FileUpload.jsp代码清单如下:Java代码1.<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>2.<%@ taglib prefix="s" uri="/struts-tags" %>3.<html>4. <head>5. <title>The FileUplaodDemo In Struts2</title>6. </head>7.8. <body>9. <s:form action="fileUpload.action" method="POST" enctype="multipart/form-data">10. <s:file name="myFile" label="MyFile" ></s:file>11. <s:textfield name="caption" label="Caption"></s:textfield>12. <s:submit label="提交"></s:submit>13. </s:form>14. </body>15.</html>2.ShowUpload.jsp的功能清单如下:Java代码1.<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>2.<%@ taglib prefix="s" uri="/struts-tags" %>3.<html>4. <head>5. <title>ShowUpload</title>6. </head>7.8. <body>9. <div style ="padding: 3px; border: solid 1px #cccccc; text-align: center" >10. <img src ='UploadImages/<s:property value ="imageFileName"/> '/>11. <br />12. <s:property value ="caption"/>13. </div >14. </body>15.</html>3.FileUploadAction.java的代码清单如下:Java代码1.package com.chris;2.3.import java.io.*;4.import java.util.Date;5.6.import org.apache.struts2.ServletActionContext;7.8.9.import com.opensymphony.xwork2.ActionSupport;10.11.public class FileUploadAction extends ActionSupport{12.13. private static final long serialVersionUID = 572146812454l;14. private static final int BUFFER_SIZE = 16 * 1024 ;15.16. //注意,文件上传时<s:file/>同时与myFile,myFileContentType,myFileFileName绑定17. //因此同时要提供myFileContentType,myFileFileName的set方式18.19. private File myFile; //上传文件20. private String contentType;//上传文件类型21. private String fileName; //上传文件名22. private String imageFileName;23. private String caption;//文件说明,与页面属性绑定24.25. public void setMyFileContentType(String contentType) {26. System.out.println("contentType : " + contentType);27. this .contentType = contentType;28. }29.30. public void setMyFileFileName(String fileName) {31. System.out.println("FileName : " + fileName);32. this .fileName = fileName;33. }34.35. public void setMyFile(File myFile) {36. this .myFile = myFile;37. }38.39. public String getImageFileName() {40. return imageFileName;41. }42.43. public String getCaption() {44. return caption;45. }46.47. public void setCaption(String caption) {48. this .caption = caption;49. }50.51. private static void copy(File src, File dst) {52. try {53. InputStream in = null ;54. OutputStream out = null ;55. try {56. in = new BufferedInputStream( new FileInputStream(src), BUFFER_SIZE);57. out = new BufferedOutputStream( new FileOutputStream(dst), BUFFER_SIZE);58. byte [] buffer = new byte [BUFFER_SIZE];59. while (in.read(buffer) > 0 ) {60. out.write(buffer);61. }62. } finally {63. if ( null != in) {64. in.close();65. }66. if ( null != out) {67. out.close();68. }69. }70. } catch (Exception e) {71. e.printStackTrace();72. }73. }74.75. private static String getExtention(String fileName) {76. int pos = stIndexOf(".");77. return fileName.substring(pos);78. }79.80.@Override81. public String execute() {82. imageFileName = new Date().getTime() + getExtention(fileName);83. File imageFile = new File(ServletActionContext.getServletContext().getRealPath("/UploadImages" ) + "/" + imageFileN ame);84. copy(myFile, imageFile);85. return SUCCESS;86. }87.}注:现在仅为方便实现Action因此继承ActionSupport,并Overrider execute()方式在struts2中任何一个POJO都能够作为Action4.struts.xml清单如下:Java代码1.<?xml version="1.0" encoding="UTF-8" ?>2.<!DOCTYPE struts PUBLIC3. "-//Apache Software Foundation//DTD Struts Configuration2.0//EN"4. "/dtds/struts-2.0.dtd">5.<struts>6. <package name="example" namespace="/" extends="struts-default">7. <action name="fileUpload" class="com.chris.FileUploadAction">8. <interceptor-ref name="fileUploadStack"/>9. <result>/ShowUpload.jsp</result>10. </action>11. </package>12.</struts>5.web.xml清单如下:Java代码1.<?xml version="1.0" encoding="UTF-8"?>2.<web-app version="2.4"3. xmlns="java.sun/xml/ns/j2ee"4. xmlns:xsi="/2001/XMLSchema-instance"5. xsi:schemaLocation="java.sun/xml/ns/j2ee6. java.sun/xml/ns/j2ee/web-app_2_4.xsd">7. <filter >8. <filter-name > struts-cleanup </filter-name >9. <filter-class >10. org.apache.struts2.dispatcher.ActionContextCleanUp11. </filter-class >12. </filter >13. <filter-mapping >14. <filter-name > struts-cleanup </filter-name >15. <url-pattern > /* </url-pattern >16. </filter-mapping >17.18. <filter>19. <filter-name>struts2</filter-name>20. <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>21. </filter>22. <filter-mapping>23. <filter-name>struts2</filter-name>24. <url-pattern>/*</url-pattern>25. </filter-mapping>26. <welcome-file-list>27. <welcome-file>Index.jsp</welcome-file>28. </welcome-file-list>29.30.</web-app>。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库的创建:数据库名叫:csdn表名:savepictureDROP TABLE IF EXISTS `savepicture`;CREA TE TABLE `savepicture` (`id` int(10) NOT NULL auto_increment,`picture` blob NOT NULL,PRIMARY KEY(`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;好动手创建工程啦:其实非常简单,一看就明白。

把需要的包该导的都导了就行了。

接着我们创建上传页面:<%@ page language="java" pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>File Upload</title><link href="<%=request.getContextPath()%>/css/fileupload.css"rel="stylesheet" type="text/css"></head><body bgcolor="#cccccc"><div style="padding-top: 30px; padding-left: 30px"><fieldsetstyle="width: 600px; border-color: #000000; padding-left: 10px"><legend><font size="-1" color="#000000"><b>上传图片</b> </font></legend><div class="ErrorDiv"><s:fielderror/><s:actionerror/></div><s:form action="fileUpload.action" method="post" theme="simple"enctype="multipart/form-data"><table border="1" width="500px"><tr><td class="tableTDCenter">图片路径:</td><td class="tableTDCenter"><s:file name="file" cssClass="fileInput"/></td></tr><tr><td class="tableTDCenter" colspan="2"><s:submit value="提交" cssClass="button"></s:submit></td></tr></table></s:form></fieldset></div></body></html>很简单,就是个上传框和按钮,别的没有了。

至于一些css就是稍微的装饰装饰,一会也在下面写上!上传成功的画面:<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Image List</title> <link href="<%=request.getContextPath()%>/css/fileupload.css" rel="stylesheet" type="text/css"> </head> <body> <s:iterator value="#list" id="picture"> <div class="divfloat"> <img src='outPicture.action?id=<s:property value ="#picture.id"/>'> </div> </s:iterator> </body> </html>下面我们看看struts2的配置文件:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><constant name="struts.custom.i18n.resources"value="messageResource" /><constant name="struts.i18n.encoding" value="UTF-8" /><package name="default" extends="struts-default"><!--上传--><action name="fileUpload"class="org.csdn.action.FileUploadAction"><interceptor-ref name ="defaultStack" /><interceptor-ref name ="fileUpload"><param name ="allowedTypes">image/bmp,image/png,image/gif,image/jpg</param><param name="maximumSize">404800</param></interceptor-ref><result name="success">/uploadSuccess.jsp</result><result name="input">/fileUpload.jsp</result></action><!--输出显示--><action name="outPicture"class="org.csdn.action.OutPictureAction"><result name="input">/uploadSuccess.jsp</result></action></package></struts>至于里面的东西是什么,大家肯定根据名字一看就知道了。

上面我引用了messageResource资源文件,为了显示错误消息。

比如上传类型不正确,超过大小,以及上传失败。

下面就是资源文件中的内容。

struts.messages.error.content.type.not.allowed=The file you uploaded is not a imagerge=this picutre is too largefileupload.fail=file upload is fail如果没有重新定义上面两个key的话,显示的会是struts2默认的错误消息,很是难看,也乱起八糟的。

所以我重新定义了。

接着我们就开始写上传和输出图片的action,以及相关的类信息上传的action:import java.io.File;import java.util.List;import org.csdn.service.FileUploadService;import org.csdn.vo.Picture;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;/*** @author closewubq*/public class FileUploadAction extends ActionSupport {private static final long serialV ersionUID = 1L;private File file;public File getFile() {return file;}public void setFile(File file) {this.file = file;}/*** 上传文件*/@Overridepublic String execute() {FileUploadService fuservice=new FileUploadService();if(fuservice.fileUpload(file)){List<Picture> list=fuservice.findAll();ActionContext cxt=ActionContext.getContext();cxt.put("list",list);return SUCCESS;}else{super.addActionError(this.getText("fileupload.fail"));return INPUT;}}}非常简单,因为我只单纯的用了struts2,没有用spring。

相关文档
最新文档