struts2文件上传
单单单单单单单单单单单单单,多,个文件上,限制文件上的型,
一.单单个文件上
struts.xml:
/success.jsp
Action:
package com.fei.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import com.opensymphony.xwork2.ActionSupport;
public class UploadAction extends ActionSupport {
private File upload; //单单单上文件
private String uploadFileName; //单单单单单上的文件名
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
/***
* 单单单单单完会自行execute()
*/
@Override
public String execute() throws Exception {
InputStream is = new FileInputStream(getUpload()); //单单单单单单单单根据上文件得到入流
OutputStream os = new FileOutputStream("D:\\upload\\" + uploadFileName); //指定出流地址单单单单单
byte buffer[] = new byte[1024];
int count = 0;
while ((count = is.read(buffer)) > 0) {
os.write(buffer, 0, count); //把文件写到指定位置的文件中
}
os.close(); //单单
is.close();
return SUCCESS; //返回
}
}
单面:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
单文件上
单 明:enctype="multipart/form-data"
enctype是form单单单单单单的属性,把属性置"multipart/form-data"单单单单单单单单单单单,
示方式会以二制流的方式来理表数据。方式会把文件域中指定文件的
封装到求单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单参数中,所以在文件上必在制定属性。单单单单单单单单单单单单
--------------------------------------------------------------------------------
二.单多个文件上
Action:
package com.fei.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
public class DuoUploadAction extends ActionSupport {
private List
upload; //单单单单单单单单单单单单单单上的文件内容,由于是多个,用List
private List uploadFileName; //单单单单单上的文件名
public List getUpload() {
return upload;
}
public void setUpload(List upload) {
this.upload = upload;
}
public List getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(List uploadFileName) {
this.uploadFileName = uploadFileName;
}
/***
* 单单单单单完会自行execute()方法
* 单多个文件上
*/
@Override
public String execute() throws Exception {
if (upload != null) {
for (int i = 0; i < upload.size(); i++) //单单单单单单单单单单单单单遍,得到个文件它行写操作每
{
InputStream is = new FileInputStream(upload.get(i)); //单单单单根据上文件得到入流单单单
OutputStream os = new FileOutputStream("D:\\upload\\"
+ getUploadFileName().get(i)); //单单单单单指定出流地址
byte buffer[] = new byte[1024];
int count = 0;
while ((count = is.read(buffer)) > 0) {
os.write(buffer, 0, count); //把文件写到指定位置的文件中
}
os.close(); //单单
is.close();
}
}
return SUCCESS; //返回
}
}
单单单单单单单单面,在之前面上加上,:
struts.xml:
/success.jsp