使用SmartUpload上传文件
2012-03-14 13:59
134 查看
SmartUpload组件特点
使用简单:编写少量代码,完成上传下载功能
能够控制上传内容
能够控制上传文件的大小、类型
缺点:目前已停止更新服务
环境准备
使用SmartUpload组件需要在项目中引入jspsmartupload.jar文件
将jspsmartupload.jar 添加到WEB-INF\lib目录下
需要设置表单的enctype属性
<form enctype="multipart/form-data" method="post">
Files类
封装了所有上传文件的信息集合
常用方法
public int getCount() 取得文件上传的数目
public File getFile(int index) 取得指定位置的File文件对象
public long getSize()取得上传文件的总长度
public Collection getCollection()将所有上传文件对象以Collection的形式返回
SmartUpload类
用于实现文件上传和下载的操作
常用方法
public final void initialize(PageContext pageContext) 执行上传和下载的初始化工作,必须实现
public void upload() 实现文件数据的上传,在initialize方法后执行
public int save(String pathName) 将全部上传文件保存到指定的目录下,并返回保存的文件个数
public void setAllowFilesList(String ExtList) 指定允许上传的文件扩展名,接收一个扩展名列表,以逗号分隔
public void setDeniedFilesList( String fileList) 指定了禁止上传的文件扩展名列表,每个扩展名之间以逗号分隔
public void setMaxFileSize(long filesize) 设定每个文件允许上传的最大长度
public void setTotalMaxFileSIze(long totalfilesize) 设定允许上传文件的总长度
上传文件的jsp代码
<%@ page contentType="text/html;charset=UTF-8" %>
<%response.setHeader("Pragma","No-cache"); %>
<%response.setHeader("Cache-Control","no-cache"); %>
<%response.setHeader("Expires","0");%>
<html>
<head>
<script language='Javascript'>
function doSubmit(){
var phone = document.getElementById('photo').value;
if(phone == ''){
alert('文件为空,请重新选择');
return;
}
document.getElementById('sform').submit();
}
</script>
<title>上传文件</title>
</head>
<body >
<div align='center'>
<form id='sform' action = "/YourProfile/upload" enctype="multipart/form-data" method="post">
选择文件:<input type="file" name="nfile" id='photo'>
</form>
<input type='button' onclick='doSubmit()' value='上传'/><br/>
</div>
</body>
</html>
处理文件上传servlet
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String filePath = getServletContext().getRealPath("/"); //文件保存路径
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(4096);
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List items = upload.parseRequest(request);
Iterator iter = items.iterator();
while(iter.hasNext()){
FileItem item = (FileItem)iter.next();
if(item.isFormField()){ //普通表单域
String name = item.getFieldName();
String value = item.getString();
}else{ //上传文件域
String fileName = item.getName(); //文件名称
fileName = fileName.substring(fileName.lastIndexOf("\\") + 1,fileName.length());
String path = filePath + fileName;
System.out.println("文件上传到:" + path);
File file = new File(path);
item.write(file);
}
}
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.print("文件上传成功!");
out.flush();
out.close();
}
}
本文链接:http://www.snowdi.com/366.html →
转载请注明文章出自雪頔网
使用简单:编写少量代码,完成上传下载功能
能够控制上传内容
能够控制上传文件的大小、类型
缺点:目前已停止更新服务
环境准备
使用SmartUpload组件需要在项目中引入jspsmartupload.jar文件
将jspsmartupload.jar 添加到WEB-INF\lib目录下
需要设置表单的enctype属性
<form enctype="multipart/form-data" method="post">
Files类
封装了所有上传文件的信息集合
常用方法
public int getCount() 取得文件上传的数目
public File getFile(int index) 取得指定位置的File文件对象
public long getSize()取得上传文件的总长度
public Collection getCollection()将所有上传文件对象以Collection的形式返回
SmartUpload类
用于实现文件上传和下载的操作
常用方法
public final void initialize(PageContext pageContext) 执行上传和下载的初始化工作,必须实现
public void upload() 实现文件数据的上传,在initialize方法后执行
public int save(String pathName) 将全部上传文件保存到指定的目录下,并返回保存的文件个数
public void setAllowFilesList(String ExtList) 指定允许上传的文件扩展名,接收一个扩展名列表,以逗号分隔
public void setDeniedFilesList( String fileList) 指定了禁止上传的文件扩展名列表,每个扩展名之间以逗号分隔
public void setMaxFileSize(long filesize) 设定每个文件允许上传的最大长度
public void setTotalMaxFileSIze(long totalfilesize) 设定允许上传文件的总长度
上传文件的jsp代码
<%@ page contentType="text/html;charset=UTF-8" %>
<%response.setHeader("Pragma","No-cache"); %>
<%response.setHeader("Cache-Control","no-cache"); %>
<%response.setHeader("Expires","0");%>
<html>
<head>
<script language='Javascript'>
function doSubmit(){
var phone = document.getElementById('photo').value;
if(phone == ''){
alert('文件为空,请重新选择');
return;
}
document.getElementById('sform').submit();
}
</script>
<title>上传文件</title>
</head>
<body >
<div align='center'>
<form id='sform' action = "/YourProfile/upload" enctype="multipart/form-data" method="post">
选择文件:<input type="file" name="nfile" id='photo'>
</form>
<input type='button' onclick='doSubmit()' value='上传'/><br/>
</div>
</body>
</html>
处理文件上传servlet
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String filePath = getServletContext().getRealPath("/"); //文件保存路径
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(4096);
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List items = upload.parseRequest(request);
Iterator iter = items.iterator();
while(iter.hasNext()){
FileItem item = (FileItem)iter.next();
if(item.isFormField()){ //普通表单域
String name = item.getFieldName();
String value = item.getString();
}else{ //上传文件域
String fileName = item.getName(); //文件名称
fileName = fileName.substring(fileName.lastIndexOf("\\") + 1,fileName.length());
String path = filePath + fileName;
System.out.println("文件上传到:" + path);
File file = new File(path);
item.write(file);
}
}
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.print("文件上传成功!");
out.flush();
out.close();
}
}
本文链接:http://www.snowdi.com/366.html →
转载请注明文章出自雪頔网
相关文章推荐
- 使用SmartUpload组件实现文件上传
- Java Web中使用JSPSmartUpload控件实现文件的上传和下载(解决了中文乱码问题)(JSP页面采用GBK编码)
- 项目开发技巧(四):使用JspSmartupload实现文件上传下载(二):jspSmartUpload上传下载全攻略(ZZ)
- [JAVA]彻底抛弃 jspSmartUpload,使用 common-fileupload 实现文件上传
- 使用smartupload组件实现jsp+jdbc上传下载文件实例解析
- java使用smartupload组件实现文件上传的方法
- 使用SmartUpload上传文件时getparameter获取不到值
- 在jsp中使用smartupload组件上传文件
- 项目开发技巧(四):使用JspSmartupload实现文件上传下载(三):jspsmartupload samples
- 使用SmartUpload组件上传文件
- 在jsp中使用smartupload组件上传文件- -
- 一个使用jspSmartUpload控件上传文件的例子
- 关于使用jspsmartupload.jar进行文件的上传与下载
- Java Web中使用JSPSmartUpload控件实现文件的上传和下载(解决了中文乱码问题)(JSP页面采用GBK编码)
- Java使用SmartUploadServlet进行文件的上传与下载
- 在jsp中使用smartupload组件上传文件
- 今天使用jspsmartupload.jar实现上传文件的功能,发现中文乱码,于是总结了下解决方法
- 使用smartupload组件上传文件时的几个问题
- java使用smartupload组件实现文件上传的方法
- Java【代码】使用jspSmartUpload实现文件上传demo