网上找到一个很好的例子:关于swfupload的,一直听说很好使。就试了试。用完感觉确实强大,后来发现是struts1版本的。所以打算改到struts2版本的。问题是上传完了以后,页面显示的是成功,可是没有存到指定文件夹中,都没有上传上来。
strus2代码片段
<action name="uploadAction" class="com.action.UploadAction"
method="forUpload">
<result name="success">index.jsp</result>
</action>
Action中代码片段--这个我是模仿人家写的,肯定有错,但是不知道哪有问题
package com.action;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class UploadAction extends ActionSupport {
private File[] file;
private String[] fileFileName;
private String[] fileContentType;
public File[] getFile() {
return file;
}
public void setFile(File[] file) {
this.file = file;
}
public String[] getFileFileName() {
return fileFileName;
}
public void setFileFileName(String[] fileFileName) {
this.fileFileName = fileFileName;
}
public String[] getFileContentType() {
return fileContentType;
}
public void setFileContentType(String[] fileContentType) {
this.fileContentType = fileContentType;
}
@SuppressWarnings("unchecked")
public String forUpload() {
try {
HttpServletRequest request = ServletActionContext.getRequest();
request.setCharacterEncoding("UTF-8");
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
// upload.setHeaderEncoding(request.getCharacterEncoding());
// System.out.println("request:" + request);
List items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (item.isFormField()) {/*
* String name = item.getFieldName();
* String value = item.getString();
* System.out.println("name = " + name);
* System.out.println("value = " +
* value); System.out.println("/r/n");
*/
} else {
String fieldName = item.getFieldName();
String fileName = item.getName();
System.out.println("文件类型 "
+ fileName.substring(fileName.lastIndexOf('.') + 1,
fileName.length()));
// boolean isInMemory = item.isInMemory();
long sizeInBytes = item.getSize();
getListInSession(request).add(fileName);
getListInSession(request).add(UUID.randomUUID());
// String[] str=fieldName.split("\\.");
// int l=str.length-1;
// System.out.println("文件类型 "+str[l]);
//
System.out.println("fileName = " + fileName);
// System.out.println("文件存储路径
// "+request.getRealPath("/")+"uploadfile/");
// 路径 D:\Program
// Files\apache-tomcat-6.0.18\webapps\rockontrol_oa\UploadFiles\2009042991039312\
String filePath = ServletActionContext.getServletContext()
.getRealPath("/")
+ "uploadfile/";
File savePath = new File(filePath);
System.out.println(savePath.getAbsolutePath());
if (!savePath.exists()) {
savePath.mkdir();
}
item.write(new File(filePath + fileName));
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
return SUCCESS;
}
public List getListInSession(HttpServletRequest request) {
List result = (List) request.getSession().getAttribute("_result");
if (result == null) {
result = new ArrayList();
request.getSession().setAttribute("_result", result);
}
return result;
}
}
jsp代码片段:css/js/swf我都有
<%@ page contentType="text/html; charset=GB2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<link href="css/default.css" rel="stylesheet" type="text/css" />
<title>文件上传</title>
<script type="text/javascript" src="jslib/swfupload.js"></script>
<script type="text/javascript" src="jslib/swfupload.queue.js"></script>
<script type="text/javascript" src="jslib/fileprogress.js"></script>
<script type="text/javascript" src="jslib/handlers.js"></script>
<script type="text/javascript">
var swfu;
window.onload = function() {
var settings = {
flash_url : "jslib/swfupload.swf",
//上传文件路径
upload_url: "uploadAction.action",
//上传文件大小
file_size_limit : "1024 MB",
//上传文件类型用;分开
file_types : "*.rmvb;*.flv;*.avi;*.mp4",
//上传文件描述
file_types_description : "All Files",
file_upload_limit : 100,
//上传文件限制为0不限制
file_queue_limit : 0,
custom_settings : {
progressTarget : "fsUploadProgress",
uploadButtonId : "btnUpload",
cancelButtonId : "btnCancel"
},
debug: false,
auto_upload:false,
// Button settings
button_image_url: "images/TestImageNoText_65x29.png",
button_width: "65",
button_height: "29",
button_placeholder_id: "spanButtonPlaceHolder",
button_text: '<span class="theFont">选择</span>',
button_text_style: ".theFont { font-size: 14; }",
button_text_left_padding: 15,
button_text_top_padding: 3,
// The event handler functions are defined in handlers.js
file_queued_handler : fileQueued,
file_queue_error_handler : fileQueueError,
file_dialog_complete_handler : fileDialogComplete,
upload_start_handler : uploadStart,
upload_progress_handler : uploadProgress,
upload_error_handler : uploadError,
upload_success_handler : uploadSuccess,
upload_complete_handler : uploadComplete,
queue_complete_handler : queueComplete // Queue plugin event
};
swfu = new SWFUpload(settings);
};
</script>
</head>
<body>
<form id="form1" action="uploadAction.action" method="post"
enctype="multipart/form-data">
<div class="wrap" id="content">
<div class="titleDiv">
<div class="titleFont">
<img src="images/up.png" width="16" height="16" />
文件上传
</div>
</div>
<div class="content">
<div class="fieldset flash" id="fsUploadProgress">
<p>
<span class="legend">上传列表</span>
</p>
</div>
<div id="divStatus" class="num">
0 个文件上传
</div>
<div style="margin-left: 30px;">
<span id="spanButtonPlaceHolder"></span>
<div style="margin-top: -20px; margin-left: 60px;">
<input id="btnUpload" type="button" value="上 传"
onclick="swfu.startUpload();"
style="margin-left: 20px; margin-bottom: 10px" class="Btn" />
<input id="btnCancel" type="button" height="29" value="取消上传"
onclick="swfu.cancelQueue();"
style="margin-left: 20px; margin-bottom: 10px" />
</div>
</div>
</div>
</div>
</form>
</body>
</html>
谢谢帮助
相关推荐
SWFUpload上传组件的一个完整的例子,后台由Struts2完成,有上传进度显示,可以多文件上传,如果你想使用SWFUpload组件但还不知道怎样使用,可以下载下来运行一下试试,看一下源码就知道了。
使用struts2整合swfupload,实现包含进度条的文件上传模块 SWFUpload的主要特点 * 可以同时上传多个文件; * 类似AJAX的无刷新上传; * 可以显示上传进度; * 良好的浏览器兼容性; * 兼容其他JavaScript库 (例如:...
自己写的一个DEMO,实现多文件上传,里面的样式使用的swfupload中的多文件上传的样式,只是实现了struts2+swfuplaod上传,喜欢的可以看看,
swfupload+ext2+struts2 技术, 导入myeclipse 就能跑
java+struts+swfupload文件上传下载 下载后可以直接运行
一个swfupload+struts2实现多文件上传的案例。
swfupload与struts2整合、完整java实例、
本示例解决了strut2+swfupload+extjs4文件上传过程中,后台struts接收不到上传文件的问题。而这个问题如果用servlet做后台可能就不存在。开发者可以用本例源码移植到自己项目中使用 。
JAVA+Struts2+swfupload上传下载,下载即可运行,支持多文件上传,Java代码有详细的代码注释。
struts1+swfuploadv2.2.0.1文件批量上传 测试过成功 用的最新版本的 swfuploadv2.2.0.1,现在已经出了2.5版本的,但是还是测试版本的,可能会不稳定,所以我做了swfuploadv2.2.0.1这个版本的,大文件上传,90MB的文件...
SWFUpload+struts+jsp版的图片上传和显示
一个struts的swfupload,界面精美
ext struts2 swfupload 跨域文件上传
图片上传成功实例java+struts1,试过成功了。swfupload的,很久以前网上当的一个例子,现在保存一下,大家需要的话可以试试。
swfupload的应用,解决文件上传的问题
struts2+swfupload上传,带有进度条,好的上传效果
java控件实现多个文档的批量上传,带时间显示
struts swfupload demo
NULL 博文链接:https://firezhfox.iteye.com/blog/1734613
Java版 swfupload 上传显示 文件大小,速度,剩余时间 进度条 ssh2 开源 文件上传 下载 只要把下载的文件集成到 ssh2 的项目里面去就可以了。