利用MultipartFile实现文件上传
来源:百度文库 编辑:神马文学网 时间:2024/06/06 04:40:30
在java中上传文件似乎总有点麻烦,没.net那么简单,记得最开始的时候用smartUpload实现文件上传,最近在工作中使用spring的MultipartFile实现文件上传,感觉挺简单,在这里和大家分享一下.
一.主要有两个java类,和一般的servlet放在一起即可.
1.FileUploadBean.java
package chb.demo.web;
import org.springframework.web.multipart.MultipartFile;
/** *//**
* @author chb
*
*/
public class FileUploadBean ...{
private MultipartFile file;
public void setFile(MultipartFile file) ...{
this.file = file;
}
public MultipartFile getFile() ...{
return file;
}
}
2.FileUploadController.java
package chb.demo.web;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
/** *//**
* @author chb
*
*/
public class FileUploadController extends SimpleFormController ...{
protected ModelAndView onSubmit(
HttpServletRequest request,
HttpServletResponse response,
Object command,
BindException errors)...{
try
...{
// cast the bean
FileUploadBean bean = (FileUploadBean) command;
// let's see if there's content there
MultipartFile file = bean.getFile();
if (file == null) ...{
throw new Exception("上传失败:文件为?空");
}
if(file.getSize()>10000000)
...{
throw new Exception("上传失败:文件大小不能超过10M");
}
//得到文件?名
String filename=file.getOriginalFilename();
if(file.getSize()>0)...{
try ...{
SaveFileFromInputStream(file.getInputStream(),"D:/",filename);
} catch (IOException e) ...{
System.out.println(e.getMessage());
return null;
}
}
else...{
throw new Exception("上传失败:上传文件不能为?空");
}
// well, let's do nothing with the bean for now and return:
try ...{
return super.onSubmit(request, response, command, errors);
} catch (Exception e) ...{
System.out.println(e.getMessage());
return null;
}
}
catch(Exception ex)
...{
System.out.println(ex.getMessage());
return null;
}
}
/** *//**保存文件
* @param stream
* @param path
* @param filename
* @throws IOException
*/
public void SaveFileFromInputStream(InputStream stream,String path,String filename) throws IOException
...{
FileOutputStream fs=new FileOutputStream( path + "/"+ filename);
byte[] buffer =new byte[1024*1024];
int bytesum = 0;
int byteread = 0;
while ((byteread=stream.read(buffer))!=-1)
...{
bytesum+=byteread;
fs.write(buffer,0,byteread);
fs.flush();
}
fs.close();
stream.close();
}
}
二.配置文件中如下配置:
1.web.xml,利用spring mvc模式,大家应该都很熟悉了
chb
org.springframework.web.servlet.DispatcherServlet
1
chb
*.do
2.chb-servlet.xml,这里要配置映射,并可以设定最大可上传文件的大小
action
index
fileUploadController
三.设定jsp页面
ok,现在就可以上传文件了,挺简单吧?这里我只列出了基本步骤,至于具体的操作(比如中文问题)可能就需要大家自己再完善完善了.
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1498112
一.主要有两个java类,和一般的servlet放在一起即可.
1.FileUploadBean.java
package chb.demo.web;
import org.springframework.web.multipart.MultipartFile;
/** *//**
* @author chb
*
*/
public class FileUploadBean ...{
private MultipartFile file;
public void setFile(MultipartFile file) ...{
this.file = file;
}
public MultipartFile getFile() ...{
return file;
}
}
2.FileUploadController.java
package chb.demo.web;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
/** *//**
* @author chb
*
*/
public class FileUploadController extends SimpleFormController ...{
protected ModelAndView onSubmit(
HttpServletRequest request,
HttpServletResponse response,
Object command,
BindException errors)...{
try
...{
// cast the bean
FileUploadBean bean = (FileUploadBean) command;
// let's see if there's content there
MultipartFile file = bean.getFile();
if (file == null) ...{
throw new Exception("上传失败:文件为?空");
}
if(file.getSize()>10000000)
...{
throw new Exception("上传失败:文件大小不能超过10M");
}
//得到文件?名
String filename=file.getOriginalFilename();
if(file.getSize()>0)...{
try ...{
SaveFileFromInputStream(file.getInputStream(),"D:/",filename);
} catch (IOException e) ...{
System.out.println(e.getMessage());
return null;
}
}
else...{
throw new Exception("上传失败:上传文件不能为?空");
}
// well, let's do nothing with the bean for now and return:
try ...{
return super.onSubmit(request, response, command, errors);
} catch (Exception e) ...{
System.out.println(e.getMessage());
return null;
}
}
catch(Exception ex)
...{
System.out.println(ex.getMessage());
return null;
}
}
/** *//**保存文件
* @param stream
* @param path
* @param filename
* @throws IOException
*/
public void SaveFileFromInputStream(InputStream stream,String path,String filename) throws IOException
...{
FileOutputStream fs=new FileOutputStream( path + "/"+ filename);
byte[] buffer =new byte[1024*1024];
int bytesum = 0;
int byteread = 0;
while ((byteread=stream.read(buffer))!=-1)
...{
bytesum+=byteread;
fs.write(buffer,0,byteread);
fs.flush();
}
fs.close();
stream.close();
}
}
二.配置文件中如下配置:
1.web.xml,利用spring mvc模式,大家应该都很熟悉了
2.chb-servlet.xml,这里要配置映射,并可以设定最大可上传文件的大小
三.设定jsp页面
ok,现在就可以上传文件了,挺简单吧?这里我只列出了基本步骤,至于具体的操作(比如中文问题)可能就需要大家自己再完善完善了.
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1498112
利用MultipartFile实现文件上传
利用Jakarta commons fileupload组件实现多文件上传
利用Jakarta commons fileupload组件实现多文件上传
通过网页实现文件上传
文件上传原理简单实现
Spring中实现文件上传
文件上传原理简单实现
struts2学习笔记(十) 利用fileUpload实现文件的上传
struts2学习笔记(十) 利用fileUpload实现文件的上传
struts2学习笔记(10) 利用fileUpload实现文件的上传
在Struts 2中实现文件上传
在Struts 2中实现文件上传
在Struts 2中实现文件上传
利用http上传文件(关于RFC1867的使用小结)
用commons.fileupload实现文件的上传和下载
ASP 中实现文件上传方法的研究
上传文件
文件上传
文件上传
利用VC++实现AVI文件的合成和分解6
利用VC++实现AVI文件的合成和分解
在Struts 2中实现文件上传 - Max On Java - BlogJava
Spring中实现文件上传-e代剑客——温柔一刀 -JavaEye技术社区
在Struts 2中实现文件上传 - Max On Java - BlogJava