JSP实现文件上传
http://www.heima123.com/html/2006-10/20016.shtm
搞了几天,在网上查了不少资料,终于把上传功能解决了。程序如下:
package linkman.helper;
import java.io.*;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletInputStream;
public class UpLoadBean {
private String SavePath = null;
private String FileName = null;
private String Sperator = null;
private String ErrMsg = "正常返回";
private byte[] bt = new byte[4096];
private byte[] prebt = new byte[4096];
private int t = -1;
private long FileSize = -1;
private boolean UserDefineFileName = false;
/////////////////////////////////////////////////
public UpLoadBean () {
FileName = bringFileName ();
}
public UpLoadBean (String savepath) {
SavePath = savepath;
FileName = bringFileName ();
}
/////////////////////////////////////////////////
// 文件名信息
private String bringFileName () {
Calendar dt = Calendar.getInstance ();
String str = "" + dt.get (Calendar.YEAR) + dt.get (Calendar.MONTH) + dt.get (Calendar.DAY_OF_MONTH);
str = str + dt.get (Calendar.HOUR) + dt.get (Calendar.MINUTE) + dt.get (Calendar.SECOND);
return str;
}
public void setFileName (String filename) {
FileName = filename;
UserDefineFileName = true;
}
public String getFileName () {
return FileName;
}
/////////////////////////////////////////////////
// 上传文件主程序
public boolean UpLoad (HttpServletRequest request) throws Exception {
if (SavePath == null) {
setErrorMessage ("未设置保存上传文件的路径");
return false;
}
request.setCharacterEncoding("utf-8");
ServletInputStream in = request.getInputStream ();
////////////////////////////////////////////
// 获取得一行的分隔标志
t = in.readLine (bt, 0, bt.length);
if (t != -1) {
Sperator = new String (bt, 0, t);
Sperator = Sperator.substring (0, 28);
t = -1;
}
////////////////////////////////////////////
// 取扩展名并设定文件全名
do {
t = in.readLine (bt, 0, bt.length);
String s = new String (bt, 0, t);
int index = s.indexOf ("filename=\"");
if (index != -1) {
s = s.substring (index + 10);
index = s.indexOf ("\"");
s = s.substring (0, index);
index = s.lastIndexOf (".");
if (!UserDefineFileName) {
FileName = FileName + s.substring (index); // 设定文件全名
}
t = -1;
}
} while (t != -1);
////////////////////////////////////////////
// 取文件内容
FileOutputStream out = new FileOutputStream (SavePath + "\\" + FileName);
t = in.readLine (bt, 0, bt.length);
String s = new String (bt, 0, t);
int i = s.indexOf ("Content-Type:");
if (i == -1) {
setErrorMessage ("上传的不是文件");
return false;
} else {
in.readLine (bt, 0, bt.length); // 去掉一个空行
t = -1;
}
boolean state = true;
long trancsize = 0;
try {
t = in.readLine (bt, 0, bt.length);
while (t != -1) {
s = new String (bt, 0, t);
if (s.length () > 28) {
s = s.substring (0, 28);
if (s.equals (Sperator)) {
break;
}
}
/*
if (bt[0] == 45 && bt[1] == 45 && bt[2] == 45 && bt[3] == 45 && bt[4] == 45) {
break;
}
*/
if (FileSize != -1) {
if (trancsize >= FileSize) {
throw new Exception ("上传文件太大");
}
}
out.write (bt, 0, t);
trancsize += t;
t = in.readLine (bt, 0, bt.length);
}
} catch (Exception e) {
state = false;
out.close ();
setErrorMessage (e.getMessage ());
File tmp = new File (SavePath, FileName);
if (!tmp.delete()) {
setErrorMessage (e.getMessage () + ",清除未完成");
}
} finally {
if (state) {
out.close ();
}
return state;
}
}
/////////////////////////////////////////////////
// 上传文件错误信息
public void setErrorMessage (String errormessage) {
ErrMsg = errormessage;
}
public String getErrorMessage () {
return ErrMsg;
}
/////////////////////////////////////////////////
// 文件大小信息
public void setFileSize (long size) {
FileSize = size;
}
public long getFileSize () {
return FileSize;
}
}// end class
分享到:
相关推荐
实例34 随机读取文件程序示例<br> 实例35 故事接龙<br> 实例36 文件上传<br> 实例37 在浏览器中打开文件<br> 实例38 文件下载<br> 实例39 用jspSmartUpload组件实现文件上传<br> 实例40 应用jspSmartUpload组件进行...
用JSP实现常见的Web应用 <br>7.1 常见的Web应用及分析 <br>7.1.1 留言板、论坛和社区 <br>7.1.2 聊天室 <br>7.1.3 搜索引擎 <br>7.1.4 电子商务 <br>7.1.6 后台管理系统 <br>7.2 留言板 <br>7.2.1 功能分析 <br>...
Tomcat.JSP<br>JSWDK环境安装与配置<br>Resin服务器平台介绍<br>Resin在IIS...jsp实现购物程序<br>用jspsmart Bean实现文件上载<br>用jsp连接mySQL数据库<br>基本内置组件<br>JDBC应用示例<br>一个用JSP做的日历<br>JSP...
使用SmartUpload实现文件上传?<br>51. 使用iReport和Jasperreport开发报表?<br>52. 使用iText生成PDF?<br>53. 制作图片水印?<br>54. 在页面中屏蔽键盘功能键?<br>55. 禁止用户复制网页内容?<br>56. 实现不在...
Springboot 集成 Ueditor 详细文档说明 Springboot 集成 UeditorRichText 编辑器时...通过以上配置和解决方法,可以解决 Springboot 集成 UeditorRichText 编辑器时遇到的问题,实现图片上传和富文本内容的正确显示。
### jspSmartUpload实现文件上传下载 #### 一、SmartUpload简介 SmartUpload是一个非常流行的Java Web组件,用于处理文件的上传与下载操作。它简化了文件上传过程中的复杂度,使得开发人员能够轻松地在Web应用中...
ReadTestquestion<br>7.5. 课程设计作业<br>第8章 日历记事本<br>8.1. 设计内容<br>8.2. 设计要求<br>8.3. 总体设计<br>8.4. 具体设计<br>8.4.1. 运行效果与程序发布<br>8.4.2. 主类CalendarPad<br>8.4.3. 记事本...
本文将详细介绍如何使用JspSmartUpload实现文件上传的技术。文件上传是Web开发中的一项常见需求,SmartUpload是一个流行的Java上传组件,提供了强大的文件上传功能。 首先,为了实现文件上传,需要在FORM表单中添加...
本教程将详细讲解如何使用JSP实现文件上传,以及相关的重要知识点。 首先,理解文件上传的基本原理。在HTTP协议中,表单提交通常采用POST方法,当用户选择文件并提交表单时,文件数据会被编码成多部分/混合内容...
基于jsp+javabean+mysql三层结构的...把class里的文件上传到你的jsp主机的class目录。<br><br>3。分别修改myshop下的config.jsp、class/myshop下的config.java文件。<br><br>4。把所有mysqldata文件倒入你的数据库。
在Spring MVC中,实现文件上传需要创建一个Controller,使用`@RequestParam("file") MultipartFile file`注解来接收上传的文件,并进行相应的处理,如保存到服务器、验证大小和类型等。同时,前端HTML表单需要设置`...
在Java Web开发中,JSP(JavaServer Pages)是一种用于创建...总结,使用JSP实现文件上传和下载需要理解HTTP协议、Servlet生命周期以及文件I/O操作。同时,注意安全性和性能优化,以确保Web应用的稳定性和用户体验。
通过使用jspSmartUpload,开发者能够在JSP环境下轻松实现文件上传与下载功能。这一过程不仅简化了开发工作量,还提高了文件处理的安全性和灵活性。此外,该库还提供了丰富的文档和支持资源,帮助用户更好地理解和...
本教程将详细介绍如何使用JSP和Servlet结合Apache Commons FileUpload库实现文件上传,并同时处理text文本。 首先,我们需要在项目中引入Apache Commons FileUpload库。通常,这可以通过在pom.xml文件中添加依赖来...
### 使用jspSmartUpload组件实现文件上传的操作步骤 #### 学习目标 - 掌握使用jspSmartUpload组件实现文件上传的基本方法。 #### 知识要点 - jspSmartUpload组件中上传类的使用。 - jspSmartUpload组件的适用场景...
这个简单的示例展示了如何在Spring Boot中实现文件上传和下载的基本功能。在实际项目中,你可能需要考虑更多的因素,比如文件大小限制、安全问题(如防止路径遍历攻击)、错误处理等。对于大规模应用,可能还需要...
"JSP实现文件上传与下载" JSP(Java Server Pages)是一种动态网页技术,用于开发基于Web的应用程序。JSP技术可以和其他Java技术集成,实现复杂的Web应用程序。下面是JSP实现文件上传与下载的知识点总结: 一、JSP...
本篇文章将详细介绍如何使用 JSP SmartUpload 实现文件上传。 首先,确保满足使用 JSP SmartUpload 的前提条件。在HTML表单中,上传文件功能需要以下设置: 1. 表单提交方式必须为 `POST`,因为文件数据通常较大,...
### jsp通过jspSmartUpload实现文件上传与下载 #### 一、文件上传篇 ##### ㈠ 表单要求 在使用jspSmartUpload进行文件上传时,必须满足以下两个基本要求: 1. **METHOD应设置为POST**:这是因为文件上传通常涉及...