您的位置:首页 > 编程语言 > Java开发

Struts1框架四之文件上传

2017-05-17 20:37 363 查看
整理笔记四,利用struts1实现文件上传,我在这里做一个简短的讲解

首先,我们需要配置一个jsp页面,让用户可以选择上传的文件



这里需要注意几点

1、请求为post请求,否则会报Element tyep unmatch异常。个人觉得原因可能为get请求时将请求信息封装在http请求头,但是请求头是有长度限制的,所以你需要将文件放在请求体里面。当然如果你上传的文件小于2K,也可以用get请求(struts1不在这个如果内)

2、需要一个type=”file”类型的from表单

3、注意需要在form表单后面填写enctype=”multipart/form-data”

配置struts-config.xml的form-bean和配置平常的form-bean是一样的

但是注意这个Student-Bean对象里面的属性

这样就完成了接受上传文件的收集,我们来看看怎么使用这个接口

package com.xingyao.action;

import java.io.File;

import java.io.FileOutputStream;

import java.io.OutputStream;

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;

import com.xingyao.model.UserFile;

/**

* 登入功能的action

* @author xingyao

* @since 2016-8-24

*/

@SuppressWarnings(“all”)

public class LoginAction extends Action{

/**
* 接受到请求信息,执行下面的代码,完成用户功能
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

//这个from就是接受到的表单信息,你可以直接进行强制转换
UserFile student_Bean =  (UserFile) form;
FormFile formFile = student_Bean.getMyFile();

//得到项目路径
String projectPath = LoginAction.class.getClassLoader().getResource("").toString();
projectPath = projectPath.replace("file:/", "");

//判断文件是否存在,如果不存在,则创建
File file = new File(projectPath+"file/");
if(!file.exists()){
file.mkdirs();
}else{
//设置得到文件的名称的编码格式为UTF-8
String s = new String(formFile.getFileName().getBytes(),"utf-8");
OutputStream os = new FileOutputStream(file+"/"+s);
os.write(formFile.getFileData());
os.flush();
}
//返回结果,拥有返回页面的判断,参照配置文件(struts-config.xml)里面的<forward name="success" path="/WEB-INF/JSP/success.jsp"></forward>
return mapping.findForward("success");
}


}

转载请标明出处

感谢苏波老师的指导

个人见解、错误请指出!请莫怪
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts