使用SmartUpload上传文件

3 篇文章 0 订阅
2 篇文章 0 订阅

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' οnclick='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  → 转载请注明文章出自 雪頔网
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值