下面是用fileupload上传文件的简单工具类:
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.FileUploadBase;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
public class UpLoadUtil2 {
public static String upload(HttpServletRequest request){
String msg = null;
try{
boolean isMultipart = FileUploadBase.isMultipartContent(request);
if(isMultipart){//判断Form是否为 multipart form
FileItemFactory fileItemFactory = new DiskFileItemFactory();//设置工厂
FileUpload fileUpload = new FileUpload(fileItemFactory);//上传组件
//这里就是中文文件名处理的代码,其实只有一行,setHeaderEncoding就可以了
fileUpload.setHeaderEncoding("utf-8");
List fileItemList = fileUpload.parseRequest(request);//解析上传文件数据包
for(int i=0;i<fileItemList.size();i++){
FileItem fileItem = (FileItem)fileItemList.get(i);//遍历每个上传文件
if(!fileItem.isFormField()){//判断是不是上传的文件
String fullFileName = fileItem.getName();//文件全名
String fileName = getFileName(fullFileName);//文件名
//设置文件存储在服务器上的路径
String path = request.getRealPath("/upload");
if(!new File(path).isDirectory())//如果不存在,则创建目录
new File(path).mkdirs();
File file = new File(path, fileName);
fileItem.write(file);
msg = file.getAbsolutePath();
}
}
}
}catch(Exception e){
e.printStackTrace();
}
return msg;
}
public static String getFileName(String fullFileName){
String fileName = fullFileName.substring(fullFileName.lastIndexOf("\\")+1);
return fileName;
}
}
如上upload方法中传入request对象参数,fileupload组件通过解析request得到上传文件。
下面是页面的部分代码,用来发送上传文件请求:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'uploadExcel.jsp' starting page</title>
<script type="text/javascript">
function tosubmit(){
var filename = document.getElementById('fileid').value;
if(filename =='' || filename == null){
alert("请先选择要上传的文件");
}else{
window.document.form1.submit();
}
}
</script>
</head>
<body>
<form method="post" name="form1"
action="<%=request.getContextPath()%>/uploadExcelServlet"
enctype="multipart/form-data" >
<table class="formLayout">
<tr>
<td align="right">
选择要上传的文件:
</td>
<td align="left">
<input type="file" id="fileid" name="filename"/>
</td>
</tr>
<tr>
<td align="right">
</td>
<td align="left">
<input type="button" value="确定上传" class="btn_width"
onclick="tosubmit()">
<input type="button" value="返回" onclick="window.history.back()"
class="btn_width">
</td>
</tr>
</table>
</form>
</body>
</html>
分享到:
相关推荐
C# .NET FileUpload 多文件上传例子,两个方法和思路,适合初学者学习。
我自己写的一个fileUpload组件的上传例子
用commons-fileupload实现文件上传功能,两个文件搞定!!!!
commons-fileupload 文件上传 中文乱码 多文件上传
FileUpload 文件上传组件的ASP.NET实例,基于主副窗口的上传程序,利用线程提升上传... ASP.NET FileUpload上传图片并解决上传限制 解决FileUpload控件上传文件大小限制 ASP.NET中实现FileUpload多文件上传
自己写的使用commons-fileupload包上传文件的简单例子。同时用到的包有commons-io
fileupload上传代码与txt文件取值实例
smartupload,基于apatch 的fileupload的文件上传):该文件包括文件上传的多个实例:有基于strtus2自带的文件上传实例、smartupload文件实例 和基于aptche自带的fileupload 的文件上传实例.
apache.commons.fileupload上传实例 java文件上传
采用了Ajax技术 功能: 文件上传 特点: 动态显示进度, 百分比, (中文)文件名, 文件长度, 上传速度......说明:累计上传文件不超过10M(可以更改代码调整),当超过1M时可以看到进度条。请下载这个较新版本。
使用ASP.NET编写的一个简单小程序,使用文件上传控件(FileUpload)编写的一个图片上传程序,上传成功后可以查看文件的类型、大小
非常详细非常好的例子。
最简单的例子,通过ServletFileUpload静态类来解析Request,工厂类FileItemFactory会对mulipart类的表单中的所有字段进行处理,不只是file字段。getName()得到文件名,getString()得到表单数据内容,isFormField...
使用 FileUpload 控件,可以为用户提供一种将文件从用户的计算机发送到服务器的方法。该控件在允许用户上载图片、文本文件或其他文件时很有用。要上载的文件将在回发期间作为浏览器请求的一部分提交给服务器。在文件...
//获取文件长度 UploadInfo info = HttpContext.Current.Session["UploadInfo"] as UploadInfo; if (info != null && info.IsReady) { int soFar = info.UploadedLength; int total = info.ContentLength; ...
fileupload 实例代码,文件上传代码实例。
java 写的文件上传下载的例子,可以做简单图片文件服务器
里面包含了,Commons-fileupload和smartupload两种上传文件的代码实例。
本人亲自使用cos,smartupload,fileupload做的文件上传得小例子,只用了基本功能,注释非常详细,一看就能学会。测试时请使用图片上传,以便达到最佳效果。转载请注明原作者名,请珍惜他人劳动成果。
1、利用org.apache.commons.fileupload编写的文件上传和下载的前台和后台代码,前台代码是Jsp,后台是用servlet处理,共2个例子,各有不同,比较使用; 2、有用jspSmartupload制作一个文件上传和下载的例子,其制作...