网上找到一个很好的例子:关于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组件但还不知道怎样使用,可以下载下来运行一下试试,看一下源码就知道了。
本教程将详细讲解如何利用SWFUpload与Struts2框架来实现多文件上传的示例。 首先,让我们了解SWFUpload。SWFUpload是一款开源的Flash上传组件,它允许用户在不离开当前页面的情况下上传多个文件。通过在浏览器上...
使用struts2整合swfupload,实现包含进度条的文件上传模块 SWFUpload的主要特点 * 可以同时上传多个文件; * 类似AJAX的无刷新上传; * 可以显示上传进度; * 良好的浏览器兼容性; * 兼容其他JavaScript库 (例如:...
要实现"java+struts+swfupload文件上传下载",你需要完成以下步骤: 1. **集成SwfUpload**:在前端页面引入SwfUpload的JavaScript库,配置相关参数如上传URL、文件类型限制等,实现文件选择和上传触发事件。 2. **...
总的来说,“swfupload+ext2”项目结合了SwfUpload 的前端文件上传功能,Ext2 的富客户端界面,以及Struts2 的后端处理能力,形成了一套完整的文件上传解决方案。开发者可以通过导入这个项目到MyEclipse,快速地搭建...
综上所述,SwfUpload与Struts2的整合主要涉及前端的SwfUpload配置和后端的Struts2 Action处理。通过这种方式,我们可以构建出一个高效的文件上传系统,为用户提供流畅的上传体验。在测试过程中,可以使用`test8`这样...
本示例解决了strut2+swfupload+extjs4文件上传过程中,后台struts接收不到上传文件的问题。而这个问题如果用servlet做后台可能就不存在。开发者可以用本例源码移植到自己项目中使用 。
SSH(Struts2 + Spring + Hibernate)是一个流行的Java Web开发框架组合,用于构建高效、可扩展的企业级应用。Struts2作为MVC框架,负责控制流程;Spring提供了依赖注入和事务管理;Hibernate则作为ORM工具,简化了...
下面将详细介绍如何利用SWFUpload与Struts2来实现多文件上传。 **一、SWFUpload组件介绍** SWFUpload 是一个JavaScript库,它利用Flash技术提供了一个高级的文件上传体验。它的主要特性包括: 1. **多文件选择**...
本项目基于JAVA、Struts2框架以及swfupload插件,提供了一个完整的文件上传下载解决方案。以下是对这个项目的详细解读: 首先,**JAVA**作为后端编程语言,以其跨平台性和丰富的库资源被广泛应用于Web开发。在这里...
struts1+swfuploadv2.2.0.1文件批量上传 测试过成功 用的最新版本的 swfuploadv2.2.0.1,现在已经出了2.5版本的,但是还是测试版本的,可能会不稳定,所以我做了swfuploadv2.2.0.1这个版本的,大文件上传,90MB的文件...
2. 配置SWFUpload的参数,如上传URL(应指向Struts 1的Action)、文件类型限制等。 3. 在Struts 1项目中创建处理文件上传的Action类,实现文件保存逻辑。 4. 更新struts-config.xml,添加Action和ActionMapping的...
在“SWFUpload_struts2.rar”这个压缩包中,我们可以看到以下几个关键文件和目录: 1. `.classpath`:这是Eclipse IDE的工作空间配置文件,包含了项目依赖的JAR文件路径和编译设置。对于Struts2项目,通常会包含...
标题 "SWFupload_struts1.rar_java 批量上传_struts1批量下载_swfupload struts1" 提供的信息表明,这是一个与Java编程语言、Struts1框架以及SWFUpload工具相关的项目或教程。SWFUpload是一个流行的老牌JavaScript和...
"ext struts2 swfupload 跨域文件上传"这个主题涉及到三个关键技术和概念:EXTJS(Ext JS)、Struts2以及SwfUpload,它们共同解决了Web应用中的跨域文件上传问题。 EXTJS是一种强大的JavaScript库,用于构建富...
为解决这些问题,我们可以采用SWFUpload库结合Struts1框架来实现大文件的Ajax上传和进度条功能。以下将详细介绍这个过程。 1. **SWFUpload介绍** SWFUpload是一款JavaScript库,它利用Flash技术实现在浏览器中进行...
SwfUpload 是一个开源的JavaScript库,用于在Web应用程序中实现文件上传功能,它与Java后端技术如Struts2框架结合使用,可以提供高级的文件上传体验。在这个项目中,SwfUpload 被用来展示文件上传的进度、速度以及...
Struts2和SwfUpload是两个在Web开发中用于文件上传的工具,它们结合使用可以提供一种具有用户体验优化的文件上传功能,特别是包含了进度条显示,使得用户能够清晰地了解文件上传的状态。以下是对这两个技术及其结合...
2. **创建Struts Action**:在Struts框架中,我们需要创建一个Action类来处理文件上传请求。这个Action需要实现文件接收和保存的功能。在Struts配置文件(struts.xml)中,为该Action定义一个对应的URL映射。 3. **...
10. **工具集成**:SWFUpload可以与各种Java Web框架(如Spring MVC、Struts2)集成,理解这些框架如何处理文件上传会更便于实际开发。 博客链接中的内容可能包含了使用SWFUpload的具体步骤和示例,你可以参考该...