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

struts2 多文件上传

2012-08-03 00:00 309 查看
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<head>
<script type="text/javacritp">
function addComponent()
{
var fileInput = document.createElement("input");
fileInput.setAttribute("type", "file");
fileInput.setAttribute("name", "files");
document.getElementById("field").appendChild(fileInput);
}
</script>
</head>
<body>
<form action="indexAction" method="post" enctype="multipart/form-data">
<div id="field">
<input type="button" onclick="javascript:addComponent();">
<input type="file" name="files">
</div>
</form>
</body>

jsp页面

package com.moretv.update.action;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class IndexAction extends ActionSupport {
private List<File> files;//更新文件集合
private List<String> filesFileName;//files的文件名集合
private List<String> filesContentType;//files文件的類型集合
public String index() {
if (files != null) {
for (int i = 0; i < files.size(); i++) {
InputStream is;
OutputStream os;
try {
//每个升级文件的文件名
String fName = "D:\\"+filesFileName.get(i);
is = new java.io.FileInputStream(files.get(i));
os = new java.io.FileOutputStream(fName);
byte buffer[] = new byte[8192];
int count = 0;
while ((count = is.read(buffer)) > 0) {
os.write(buffer, 0, count);
}
os.close();
is.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return "SUCCESS";
}

public List<String> getFilesFileName() {
return filesFileName;
}

public void setFilesFileName(List<String> filesFileName) {
this.filesFileName = filesFileName;
}

public List<String> getFilesContentType() {
return filesContentType;
}

public void setFilesContentType(List<String> filesContentType) {
this.filesContentType = filesContentType;
}

public void setFiles(List<File> files) {
this.files = files;
}

public List<Map> getComVersions() {
return comVersions;
}}

action代码

==============================

在某些情况下可能发生,jar包没有问题,代码没有问题,但是却无法获取页面传来文件,这有可能是缺少了文件上传拦截器的缘故。例子如下:

<action name="add" class="AAction" method="add">
<result name="success" type="redirect">/A/list.action</result>
<interceptor-ref name="fileUploadStack"></interceptor-ref>
</action>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  文件上传