由于jspsmartupload上传文件,当前端页面没有file控件时,后端用jspsmartupload控件upload时将会走入一个死循环。现在采用struts自己提供的功能实现文件的上传。
1、前端页面upload.jsp
<html:form action="/filesave.do" styleId="formItem" method="post" enctype="multipart/form-data">
<INPUT class='input-file' type="file" name="theFile">
</html:form>
2、struts-config.xml文件配置
<form-bean name="UploadForm" type="yhp.test.web.UploadForm" />
<action input="/upload.jsp" name="UploadForm" path="/filesave" scope="request" type="yhp.test.web.UploadAction" validate="false">
<forward name="success" path="/success.jsp" />
<forward name="error" path="/error.jsp" />
</action>
3、UploadForm.java文件
package yhp.test.web;
import org.apache.struts.upload.FormFile;
import org.apache.struts.action.ActionForm;
public class UploadForm extends ActionForm {
protected String theText; //使用protected,其它需要上传的form可以继承此form
protected boolean writeFile = true;
protected FormFile theFile;
protected String filePath;
public String getTheText() {
return theText;
}
public void setTheText(String theText) {
this.theText = theText;
}
public FormFile getTheFile() {
return theFile;
}
public void setTheFile(FormFile theFile) {
this.theFile = theFile;
}
public void setWriteFile(boolean writeFile) {
this.writeFile = writeFile;
}
public boolean getWriteFile() {
return writeFile;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
public String getFilePath() {
return filePath;
}
public void reset() {
writeFile = false;
}
}
4、UploadAction.java文件
package yhp.test.web;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;
public class UploadAction extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) throws
Exception {
if (actionForm instanceof UploadForm) {
// 获取上传的目录
String path = getServlet().getServletContext().getInitParameter("UPLOADPATH");
File f = new File(path);
if (!f.isDirectory()) {
f.mkdir();
}
UploadForm theForm = (UploadForm) actionForm;
String text = theForm.getTheText();
FormFile file = theForm.getTheFile();
String fileName = file.getFileName();
String contentType = file.getContentType();
boolean writeFile = theForm.getWriteFile();
String desFileName=path fileName ;
String size = (file.getFileSize() + " bytes");
try {
InputStream stream = file.getInputStream();
OutputStream bos = new FileOutputStream(strFileName);
byte[] buffer = new byte[file.getFileSize()];
stream.read(buffer);
bos.write(buffer);
stream.close();
bos.close();
return actionMapping.findForward("success");
}
catch (FileNotFoundException fnfe) {
return actionMapping.findForward("success");
}
catch (IOException ioe) {
return actionMapping.findForward("success");
}
catch(Exception eo){
return actionMapping.findForward("error");
}
}else{
return actionMapping.findForward("error");
}
}
}
分享到:
相关推荐
用Struts框架实现单文件上传功能(初学者的入门项目案例),本项目适合课后作业的哦.
基于struts2 框架的文 件上传 copy 模式 字节流上传 字符流上传
Struts2框架实现文件上传功能
struts框架写的文件上传下载系统 注册会员以后 用户可以上传文件到服务器,并查看服务器端所有上传文件、下载...
用Struts框架实现单文件上传功能(初学者的入门项目案例),本项目适合课后作业的哦.
struts框架-文件上传下载 有研究或探讨的请加群:37424970 或联系本人MSN或邮箱:zhuseahui@yahoo.com.cn
Struts框架文件上传下载案例,需要的自取。
最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助。在此谢谢各位!...
基于struts的文件上传下载,可多文件同时上传
基于Struts框架的多文件上传组件设计和研究,这个是文件,对于要写毕业论文的同学会很有帮助的
java struts2实现文件上传进度条显示
Struts 2是通过Commons FileUpload文件上传。Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中。从而我们就能够以本地文件方式的操作浏览器上传的...
一个简单的用struts框架做的文件上传代码
利用struts2框架实现uploadidfy多文件上传,显示进度条上传
使用struts2框架进行文件的上传并限制文件的大小与类型,使用struts2框架实现文件下载
基于struts2框架 实现文件上传,详细介绍了action类实现代码,struts.xml配置,web.xml 配置,jsp页面。
基于HT T P 传输协议, 采用Struts2 框架整合Spring 框架技术对Web 中文件的上传下载进 行应用研究. 提出的技术整合方案结合了...比较, 展示了Struts2 在文件上传下载应用中的优势, 并例举了一个实际应用项目的成功案例.
struts框架实现单文件上传相对于其他第三方上传控件来讲是一件比较容易的事情,但是对于多文件的上传就比较麻烦了,在此特制作了struts实现多文件上传的demo,希望对大家有所帮助。
该项目采用的是典型的struts2框架,在此框架之上实现了多文件上传的功能。