附件:2.publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{InputStreamis=request.getInputS" />

文件上传的简单方法

文件上传的简单方法
文件上传的简单方法

文件上传的简单方法:(原理性的实验)

1.

enctype="multipart/form-data" method="post">

附件:

2. public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

InputStream is = request.getInputStream(); //获得request的输入流

FileOutputStream fos = new FileOutputStream(new

File("d:/testUpload.jpg"));

byte[] b = new byte[1024];

while(is.read(b)!=-1){

fos.write(b);

}

is.close();

fos.close();

}

使用commons-fileupload组件实现的基本上传:

1.加jar包:commons-fileupload.jar, commons-io.jar

2.JSP页面中增加form:

action="uploadVideo">

3.增加servlet:

public void doPost(HttpServletRequest request, HttpServletResponse

response)

throws ServletException, IOException {

String tempDirectory = "d:/temp/"; //要在最后加上斜杠:temp/ 临时文件夹上传成功之前存放缓存的位置

String fileDirectory = "d:/video/"; //要在最后加上斜杠:temp/ 上传成功后的文件所放的目录

try {

int sizeThreshold = 1024 * 64; //写满该大小的缓存后,存入硬盘中。

File repositoryFile = new File(tempDirectory);//将未完全上传成功的信息放到指定的临时文件夹

FileItemFactory factory = new

DiskFileItemFactory(sizeThreshold, repositoryFile);

ServletFileUpload upload = new ServletFileUpload(factory);

upload.setSizeMax(500 * 1024 * 1024); // set every upload file'size less than 500M

List items = upload.parseRequest(request); //这里开始执行上传

Iterator iter = items.iterator();

while (iter.hasNext()) {

FileItem item = (FileItem) iter.next(); //FileItem就是表示一个表单域。

if(item.isFormField()){ //isFormField方法用于判断FileItem 是否代表一个普通表单域(即非file表单域)

System.out.println("***"+item.getFieldName());

}else {

// String fieldName = item.getFieldName(); //获取表单域name属性的值

// String fileName = item.getName(); //返回该文件在客户机上的文件名。e.g: e:\dianying\\video\1.wmv

// System.out.println("*****"+fieldName);

// System.out.println("*****"+fileName);

File uploadedFile = new File(fileDirectory +new

Date().getTime());

item.write(uploadedFile);

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

jsp中实现一个页面纯io流上传文件

jsp中实现一个页面纯io流上传文件 <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%@page import="java.io.*"%> <%@page import="java.sql.*"%> My JSP 'Xs.jsp' starting page <%! //此方法用于将指定的文本转换成ISO-8859-1字符编码格式 public String codeToString(String str) { String s = str; try { byte tempB[] = s.getBytes("ISO-8859-1"); s = new String(tempB); return s; } catch (Exception e) { return s; } } %> <% //声明一个临时文件名 String tempFileName = new String("tempFileName1"); //在D盘建立一个临时文件,名为tempFileName File tempFile1 = new File("D:/", tempFileName); //根据指定的这个临时文件,来创建一个文件字节输出流(用于向磁盘写文件) FileOutputStream outputFile1 = new FileOutputStream(tempFile1); //由返回一个文件字节输入流(用于读文件) InputStream fileSource1 = request.getInputStream(); //实例一个字节数组初始为1000kb byte b[] = new byte[1000]; int n; //利用while循环,先读出这个文件大小,判断为不为-1,如果不为-1就输出数据,向磁盘写文件数据 while ((n = fileSource1.read(b)) != -1) { outputFile1.write(b, 0, n); //将 n 个字节从b字节数组写入到outputFile1文件,偏移量从0开始 } //关闭文件输出流 outputFile1.close(); //关闭文件输入流 fileSource1.close(); //实例化一个RandomAccessFile 对象.创建从中读取和向其中写入(可选)的随机存取文件流,该文件由 File 参数指定。 //将创建一个新的 FileDescriptor 对象来表示此文件的连接。 //mode 参数指定用以打开文件的访问模式。允许的值及其含意为:

Apache FileUpload 四种方式实现文件上传

将Apache的commons-fileupload.jar放在应用程序的WEB-INF\lib下,即可使用。下面举例介绍如何使用它的文件上传功能。 所使用的fileUpload版本为1.2,环境为Eclipse3.3+MyEclipse6.0。FileUpload 是基于Commons IO的,所以在进入项目前先确定Commons IO的jar包(本文使用commons-io-1.3.2.jar)在WEB-INF\lib下。 此文作示例工程可在文章最后的附件中下载。 示例1 最简单的例子,通过ServletFileUpload静态类来解析Request,工厂类FileItemFactory会对mulipart类的表单中的所有字段进行处理,不只是file字段。getName()得到文件名,getString ()得到表单数据内容,isFormField()可判断是否为普通的表单项。 demo1.html File upload //必须是multipart的表单数据。

Your name:

File:


demo1.jsp <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@ page import="https://www.360docs.net/doc/0e16644931.html,mons.fileupload.*"%> <%@ page import="https://www.360docs.net/doc/0e16644931.html,mons.fileupload.servlet.*"%> <%@ page import="https://www.360docs.net/doc/0e16644931.html,mons.fileupload.disk.*"%> <%@ page import="java.util.*"%> <% boolean isMultipart = ServletFileUpload.isMultipartContent(request);//检查输入请求是否为multipart表单数据。 if (isMultipart == true) { FileItemFactory factory = new DiskFileItemFactory();//为该请求创建一个

jsp实现文件上传和下载(代码及说明)

特点: 1.可以多文件上传; 2.返回上传后的文件名; 3.form表单中的其他参数也可以得到。先贴上传类,JspFileUpload package 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 * Auther SinNeR@https://www.360docs.net/doc/0e16644931.html, * by https://www.360docs.net/doc/0e16644931.html, * mail: vogoals@hotm https://www.360docs.net/doc/0e16644931.html, */ /** * 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对象。 * * @param request * HttpServletRequest request对象 */ public void setRequest(HttpServletRequest request) { this.request = request; } /** * 设定文件上传路径。 * * @param path * 用户指定的文件的上传路径。 */ public void setUploadPath(String path) { this.uploadPath = path; } /** * 文件上传处理主程序。 �������B * * @return int 操作结果0 文件操作成功;1 request对象不存在。2 没有设定文件保存路径或者

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文件内容如下: Image File



我们在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.* "%>

jsp 图片上传功能实现原创

package com.lsl.util; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import javax.imageio.ImageIO; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGEncodeParam; import com.sun.image.codec.jpeg.JPEGImageEncoder; /** * * @author Administrator * 图像处理类 */ public class PicCompression { /** * 压缩图片方法 * * @param oldFile * 将要压缩的图片的绝对地址 * @param width * 压缩宽 * @param height * 压缩长 * @param quality * 压缩清晰度建议为1.0 * @param smallIcon * 压缩图片后,添加的扩展名 * @return */ public String zoom(String oldFile, int width, int height, float quality) { if (oldFile == null) { return null; } String newImage = null; try { File file = new File(oldFile);

JSP中上传图片 完整代码

upfile.jsp

uploadimage.jsp uploadimage.jsp
 <%@ page language="java" pageEncoding="gb2312"%> <%@ page import="java.io.*,java.awt.image.*,com.sun.image.codec.jpeg.*,jav a.sql.*,com.jspsmart.upload.*,java.util.*"%> <%@ page import="mainClass.*"%>   My JSP'uploadimage.jsp' starting page   <% S martUpload sma = new SmartUpload(); l ong file_max_size = 4000000; S tring filename1 = "", ext = "", testvar = ""; S tring url = "uploadfiles/"; s ma.initialize(pageContext); t ry { sma.setAllowedFilesList("jpg,gif"); sma.upload(); }catch (Exception e) { %>

JSP文件上传-二进制流详解

JSP文件上传 一、先做选择上传文件页面chose.jsp,比较简单。 代码如下: 关键代码是:

选择文件后的上传由upfile.jsp网页来处理;整个表单内容以post方式传递;表单中包含的所有内容,包括文件都会以enctype="multipart/form-data"二进制形式传给服务器。 注意JSP网页里不同的编码形式声明: charset=gb2312表示网页中包含的内容(比如文件)以简体中文编码; pageEncoding="UTF-8"表示JSP网页源代码本身是UTF-8编码。 因为表单form的内容会以二进制形式传到服务器,就必须用

charset=gb2312指定这个二进制是以中文简体来编码的,这样传上去以后真正处理上传和存储的upfile.jsp页才能看懂识别中文文件名! 选择文件页面比较简单,关键是编码的申明,必须说清楚,不然到时候中文文件名就会乱码。 二、upfile.jsp页用来接收和处理以二进制形式传给服务器的数据流。 1、二进制数据流的基本信息。 还是用request对象帮我们取从客户端传过来的各种信息,先取二进制数据流的整体长度,就是传过来文件的大小了,单位是字节。 int formDataLength = request.getContentLength(); 我们可以设置能接收的最大文件大小,比如下面,就是10M。 int MAX_SIZE = 10*1024*1024; 再取传过来的二进制数据流类型,不知道里面是什么鬼? String contentType = request.getContentType(); 不要紧,我们打出来看看就知道了,out.print编程时非常有用,随时打出来瞅瞅。 out.print(contentType);会看到下面这个: 主要就是要后面的这个东西 一个表单form可能选了多个文件,全部在一个二进制数据流里面一起传过来,那么文件数据之间都用这个间隔boundary隔开的。通过它才可以在二进制数据流中找到一个文件的开始和结束位置,从而将文件数据正确取出并保存到服务器里。 一个字节的位置错误都会造成文件保存出错!所以文件保存的最关键就是要找准位置,错一个字节都不行。

JSP文件上传

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

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.*"%> upFile <% //定义上载文件的最大字节 int MAX_SIZE = 102400 * 102400; // 创建根路径的保存变量 String rootPath; //声明文件读入类 DataInputStream in = null; FileOutputStream fileOut = null; //取得客户端的网络地址 String remoteAddr = request.getRemoteAddr(); //获得服务器的名字 String serverName = request.getServerName();

jsp多文件上传到数据库

数据库的创建: 数据库名叫:csdn 表名:savepicture DROP 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"%>

File Upload

上传图片
图片路径:
很简单,就是个上传框和按钮,别的没有了。至于一些css就是稍微的装饰装饰,一会也在下面写上!

jsp实现word文档的上传在线预览下载

JSP实现word文档的上传,在线预览,下载 前两天帮同学实现在线预览word文档中的内容,而且 需要提供可以下载的链接!在网上找了好久,都没有什么可行的方法,只得用最笨的方法来实现了。希望得到各位大神的指教。下面我就具体谈谈自己的实现过程,总结一下学习中的收获。 我相信很多程序员都遇到过,有些word文档希望直接在浏览器中打开进行预览,但是浏览器往往不是很配合,直接就提示下载,不像pdf文档,浏览器可以直接进行预览。Word文档甚至始终都会通过本地的Office软件打开。那么,问题来了,如何可以在线浏览word文档呢? 其实,我在最初的时候也没有接触过这方面的东西,一般用的比较多的是生成pdf文档,而浏览器一般都支持pdf 的浏览,因此,直接通过后台传来的数据,再利用java和一些相关的jar包就可以生产一个pdf文档,在浏览器中可以 直接显示。尽管可以这样,但是我们需要的是解决实际问题啊?在浏览器中打开word文档。 在网上查了一些资料,也都没有查出个所以然。看了好几个博客和论坛,也都是大同小异,测试了好几个,基本都是浏览器提示直接下载,或者打开,这里的打开也都是利用本地的Office软件打开的,所以这并不是自己想要的结果。

于是,自己动手,既然浏览器不支持显示word文档,我何不将word文档按照原来word的样式和内容转为html呢?而在浏览器中,html是再熟悉不过了。基本思路就是这样,首先是利用上传的word文档转为html文件,然后生成的链接显示在jsp页面上,如果点击显示该word文档,那么实际上浏览器读取的是刚生成的html文件。 下面将自己的实现过程总结如下,欢迎各位朋友提供更好的解决办法。转载本文请在文章明显位置标明文章的原始出处,个人博客:https://www.360docs.net/doc/0e16644931.html, 邮箱: it_red@https://www.360docs.net/doc/0e16644931.html, 1. Word文档转为html 这里采用第三方组件jacob来实现的,本demo所用的版本为jacob-1.18-M2;下载链接为: http://sourceforge.jp/projects/sfnet_jacob-project/releases/ 先在这里说一下,用这个组件还是比较麻烦的,首先要根据自己的电脑实际情况将压缩包里面的动态链接库 放到多个目录下,而这个动态链接库为: 将其复制的位置分别是: C:\Windows\System32 机器所安装的java目录下的jdk下的bin中

ssh框架中jsp上传图片功能的实现

jspsmart的使用 上传 // 新建一个SmartUpload对象 SmartUpload su = new SmartUpload(); // 上传初始化 su.initialize(pageContext); // 限制每个上传文件的最大长度。 su.setMaxFileSize(10000); // 限制总上传数据的长度。 su.setTotalMaxFileSize(20000); // 设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。 su.setAllowedFilesList("doc,txt"); // 设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat, //jsp,htm,html扩展名的文件和没有扩展名的文件。 su.setDeniedFilesList("exe,bat,jsp,htm,html,,"); // 上传文件 su.upload(); // 将上传文件全部保存到指定目录 int count = su.save("/upload"); 下载 // 新建一个SmartUpload对象 SmartUpload su = new SmartUpload(); // 初始化 su.initialize(pageContext); // 设定contentDisposition为null以禁止浏览器自动打开文件, //保证点击链接后是下载文件。若不设定,则下载的文件扩展名为 //doc时,浏览器将自动用word打开它。扩展名为pdf时, //浏览器将用acrobat打开。 su.setContentDisposition(null); // 下载文件 su.downloadFile("/upload/test.doc"); 应用实例: uploadimage.jsp <%@ page contentType="text/html;charset=gb2312" language="java" import="java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,java.sql.*,com.js psmart.upload.*,java.util.*"%> <%

JSP案例开发集锦

第一章:JSP与HTML 案例1:动态设置网员背景图片 案例2:用JSP定制主页 案例3:表格应用实例 案例4:网页中文乱码问题的解决方案 案例5:JSP与CSS结合应用 第二章:JSP与字符串 案例1:显示不同大小的“你好Jsp”字符串中文的问题案例2:JSP中对字符串的处理及其扩展 案例3:实现文本模糊查找 案例4:JSP汉字转码 案例5:设置JSP异常处理 案例6:分割字符串 案例7:清除字符串中指定的字符 案例8:如何取得汉字的区位码 案例9:字符串中包含双引号 第三章:JSP与图像 案例1:JSP生成jpeg图片用于投票 案例2:记数器的实现 案例3:JSP中定义函数实现特例 第四章:JSP与数据库 案例1:基本的数据库连接实例 案例2:JDBC 实例 案例3:数据库访问JavaBean 实例 案例4:单记录浏览数据 案例5:分页显示 案例6:编程实现记录编辑 案例7:创建数据报表 案例8:系统登录系统 案例9:SQL创建和修改数据库 案例10:图形显示数据库表中的数据信息 案例11:将图片添加到数据中 案例12:定制标签实例 案例13:扩展标签实例 案例14:综合实例――学生管理系统 第五章:JSP与EJB 案例1:封装数据源 案例2:Enterprise JavaBeans的处理文件 案例3:实现EJBObject文件 案例4:实现EJBHome文件 案例5:一个javabean轻松实现数据库操作 案例6:在电子商务中的应用 案例7:动态日历 案例8:DIR计算器 第六章:JSP与Web

案例1:Telnet 服务 案例2:SMTP 服务 案例3:FTP 服务 案例4:News 服务 案例5:查询主机和本机的IP 案例6:环境列表 案例7:JavaMail API发送电子邮件 案例8:jspSmartUpload上传下载全攻略 案例9:留言本程序 案例10:聊天室程序 案例11:浏览器程序 第七章:JSP与XML 案例1:XML简单示例 案例2:Tag Library 开发与应用实例 案例3:JSP与Tag Library和XML的结台应用案例4:投票器 案例5:jsp操作Execl分析 第八章:JSP与JavaScript的结台应用 案例1:文件的读取 案例2:获取文件或文件夹属性 案例3:显示盘中所有的目录 案例4:用JSP实现文件查找功能 案例5:实现目录遍历 案例6:文件管理器 案例7:记事本 案例8:中文显示服务端日期 案例9:判断服务端时间并显示中文问候 案例10:打印文件 第九章:JSP综合实例 综合实例1:论坛和社区 综合实例2:酒店管理系统 综合实例3:搜索引擎 综合实例4:购物车 综合实例5:后台管理系统 综合实例6:新闻发布系统 综合实例7:网络考试

jspSmartUpload使用文档

一、安装篇 jspSmartUpload是由https://www.360docs.net/doc/0e16644931.html,网站开发的一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中。该组件有以下几个特点: 1、使用简单。在JSP文件中仅仅书写三五行JAVA代码就可以搞定文件的上传或下载,方便。 2、能全程控制上传。利用jspSmartUpload组件提供的对象及其操作方法,可以获得全部上传文件的信息(包括文件名,大小,类型,扩展名,文件数据等),方便存取。 3、能对上传的文件在大小、类型等方面做出限制。如此可以滤掉不符合要求的文件。 4、下载灵活。仅写两行代码,就能把Web服务器变成文件服务器。不管文件在Web服务器的目录下或在其它任何目录下,都可以利用jspSmartUpload进行下载。 5、能将文件上传到数据库中,也能将数据库中的数据下载下来。这种功能针对的是MYSQL 数据库,因为不具有通用性,所以本文不准备举例介绍这种用法。 jspSmartUpload组件可以从https://www.360docs.net/doc/0e16644931.html,网站上自由下载,压缩包的名字是jspSmartUpload.zip。下载后,用WinZip或WinRAR将其解压到Tomcat的webapps目录下(本文以Tomcat服务器为例进行介绍)。解压后,将webapps/jspsmartupload目录下的子目录Web-inf名字改为全大写的WEB-INF,这样一改jspSmartUpload类才能使用。因为Tomcat对文件名大小写敏感,它要求Web应用程序相关的类所在目录为WEB-INF,且必须是大写。接着重新启动Tomcat,这样就可以在JSP文件中使用jspSmartUpload组件了。 注意,按上述方法安装后,只有webapps/jspsmartupload目录下的程序可以使用jspSmartUpload组件,如果想让Tomcat服务器的所有Web应用程序都能用它,必须做如下工作: 1.进入命令行状态,将目录切换到Tomcat的webapps/jspsmartupload/WEB-INF目录下。2.运行JAR打包命令:jar cvf jspSmartUpload.jar com (也可以打开资源管理器,切换到当前目录,用WinZip将com目录下的所有文件压缩成jspSmartUpload.zip,然后将jspSmartUpload.zip换名为jspSmartUpload.jar文件即可。) 3.将jspSmartUpload.jar拷贝到Tomcat的shared/lib目录下。 二、相关类说明篇 ㈠File类 这个类包装了一个上传文件的所有信息。通过它,可以得到上传文件的文件名、文件大小、扩展名、文件数据等信息。

jsp实现文件上传和下载

1 JSP文件上传简单实例 1、index.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()此方法从该文件的当前文件指针开始读取第一个字节。 https://www.360docs.net/doc/0e16644931.html,stIndexOf(char c)返回最后一次出现的指定字符在此字符串中的索引 3、do_upload.jsp <%@ page contentType="text/html;charset=gb2312" language="java"%> <%@ page import="java.io.*"%> 上传 <% try{ String temp=(String)session.getId();//获得sessionId File f1=new File((String)request.getRealPath("photo")+"/",temp); //获得photo所在的目

JSP 实现多个文件上传的两种方法

JSP 实现多个文件上传的两种方法 JSP实现文件上传的实现方式是这样的:使用ServletRequest类的getInputStream()方法获得一个客户端向服务器发出的数据流,然后处理这个数据流,从中分析得到文件上传中传递到服务器的各个参数和数据,然后将其中的文件数据存储为一个文件或插入到数据库中。 通常JSP页面中不处理文件的上传功能,而是把这些功能放到Servlet 或JavaBean中去实现。使用Servlet完成文件上传的例子在其他JSP书籍中有所介绍,这里只介绍使用JeanBean是如何完成文件上传的。 JSP中实现文件的上传可以采用两种方式即采用HTTP协议和FTP协议实现,二者在传输的原理上存在很大的差异。以下将结合源代码对它们的实现做简单介绍,相信读者会从中有所收获。 在JSP中使用JavaBean实现基于Web的文件上传功能一般需要三种文件结合完成。这三种文件分别是提供界面的HTML页面文件、完成调用实现上传功能的JavaBean的JSP文件和实现JavaBean的Java的类文件。 1.采用HTTP协议实现多个文件的上传 在过去的HTML页面中,表单不能实现文件的上传,这多少限制了一些网页的功能。RFC1867规范(即HTML中实现基于表单的文件上传)对表单作出了扩展,增加了一个表单元素(input type=file)。通过使用这个元素,浏览器会自动生成一个输入框和一个按钮,输入框可供用户填写本地的文件名和路径名,按钮可以让浏览器打开一个文件选择框供用户选择文件。具体的表单实现如下: 选择了文件后直接输入本地文件的绝对路径,表单的action属性值是*.jsp,这意味着请求(包括上载的文件)将发送给*.jsp文件。在这个过程中实际上就实现了HTTP方式的文件上载。文件从客户端到服务器的上传是由HTTP协议的通用网关界面(CGI)支持的。这种上载方式要求浏览器和WEB服务器两方面都能够支持Rfc1867。JavaBean 通过ServletRequest类的getInputStream()方法获得一个客户端向服务器发出的数据流、分析上传的文件格式,根据分析结果将多个文件依次输出服务器端的目标文件中。 2.采用FTP协议实现多个文件的上传 FTP协议是Internet上用来传送文件的协议,规定了Internet上文件互相传送的标准。在Java中实现这一功能是借助FtpClient类完成的。具体实现过程:首先与FTP服务器建立连接。然后初始化文件的传输方式,包括ASCII和BINARY两种方

JAVA中的文件上传

SmartUpload上传图片 目标:在Jsp页面中实现文件上传 初级篇 文件上传是我们程序中会经常使用到的功能,针对于上传的技术也非常多!那么在此介绍两种常用简单的上传方式 上传方式一:使用SmartUpload组建进行上传 上传方式二:使用Struts的标签进行上传 我们新建一个Java Web工程,这里使用纯粹的jsp进行上传和显示功能的实现。 我们需要在我们的工程中添加smartUpload.jar包 之后我们编写index.jsp Index.jsp View Index.jsp Source 需要注意的设置表单的enctype="multipart/form-data"这个值我们可以再Dreamweaver中选我们将表单提交到另一个处理上传请求的doUploadjsp页面 我们现在编写处理文件上传的页面doUpload.jsp

下面是doUpload.jsp页面中的源代码 <%@page language="java"import="java.util.*"pageEncoding="GBK"%> <%@page import="com.jspsmart.upload.File"%> <%@page import="com.jspsmart.upload.Files"%> <%@page import="com.jspsmart.upload.SmartUpload"%> <% //实例化上传组件 SmartUpload upload=new SmartUpload(); //初始化上传组件 upload.initialize(this.getServletConfig(),request,response); //开始上传 upload.upload(); //获取上传的文件列表对象 Files f=upload.getFiles(); //获取文件对象 File fil=f.getFile(0); //去的文件后缀 String ext=fil.getFileExt(); //判断文件类型是否是jpg格式 if(!(ext.equals("jpg"))){ out .println(""); return; } //满足条件进行文件的上传需要注意的是upload使我们webRoot文件夹下的一个目录 fil.saveAs("upload/"+fil.getFileName()); %> 至此我们就完成了一个最简单的图片上传示例。我们部署测试下! 文件上传页面 我们选择一个视频文件

相关文档
最新文档