0 0

swfupload+struts2问题0

网上找到一个很好的例子:关于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>


谢谢帮助
2013年11月07日 15:17

1个答案 按时间排序 按投票排序

0 0

这代码写的多弱智啊

2013年11月08日 11:28

相关推荐

    SWFUpload+Struts2文件上传,支持多文件上传和进度显示

    SWFUpload上传组件的一个完整的例子,后台由Struts2完成,有上传进度显示,可以多文件上传,如果你想使用SWFUpload组件但还不知道怎样使用,可以下载下来运行一下试试,看一下源码就知道了。

    swfupload+struts2多文件上传的例子

    本教程将详细讲解如何利用SWFUpload与Struts2框架来实现多文件上传的示例。 首先,让我们了解SWFUpload。SWFUpload是一款开源的Flash上传组件,它允许用户在不离开当前页面的情况下上传多个文件。通过在浏览器上...

    swfupload+Struts2多文件上传,有进度条,很漂亮的效果

    使用struts2整合swfupload,实现包含进度条的文件上传模块 SWFUpload的主要特点 * 可以同时上传多个文件; * 类似AJAX的无刷新上传; * 可以显示上传进度; * 良好的浏览器兼容性; * 兼容其他JavaScript库 (例如:...

    java+struts+swfupload文件上传下载

    要实现"java+struts+swfupload文件上传下载",你需要完成以下步骤: 1. **集成SwfUpload**:在前端页面引入SwfUpload的JavaScript库,配置相关参数如上传URL、文件类型限制等,实现文件选择和上传触发事件。 2. **...

    swfupload+ext2

    总的来说,“swfupload+ext2”项目结合了SwfUpload 的前端文件上传功能,Ext2 的富客户端界面,以及Struts2 的后端处理能力,形成了一套完整的文件上传解决方案。开发者可以通过导入这个项目到MyEclipse,快速地搭建...

    swfupload与struts2整合文件上传/完整Java实例

    综上所述,SwfUpload与Struts2的整合主要涉及前端的SwfUpload配置和后端的Struts2 Action处理。通过这种方式,我们可以构建出一个高效的文件上传系统,为用户提供流畅的上传体验。在测试过程中,可以使用`test8`这样...

    strut2+swfupload+extjs4文件上传

    本示例解决了strut2+swfupload+extjs4文件上传过程中,后台struts接收不到上传文件的问题。而这个问题如果用servlet做后台可能就不存在。开发者可以用本例源码移植到自己项目中使用 。

    SwfUpload+ssh+easyui实现的文件上传

    SSH(Struts2 + Spring + Hibernate)是一个流行的Java Web开发框架组合,用于构建高效、可扩展的企业级应用。Struts2作为MVC框架,负责控制流程;Spring提供了依赖注入和事务管理;Hibernate则作为ORM工具,简化了...

    swfuplaod+struts2实现多文件上传

    下面将详细介绍如何利用SWFUpload与Struts2来实现多文件上传。 **一、SWFUpload组件介绍** SWFUpload 是一个JavaScript库,它利用Flash技术提供了一个高级的文件上传体验。它的主要特性包括: 1. **多文件选择**...

    JAVA+Struts2+swfupload文件上传下载

    本项目基于JAVA、Struts2框架以及swfupload插件,提供了一个完整的文件上传下载解决方案。以下是对这个项目的详细解读: 首先,**JAVA**作为后端编程语言,以其跨平台性和丰富的库资源被广泛应用于Web开发。在这里...

    struts1+swfuploadv2.2.0.1文件批量上传

    struts1+swfuploadv2.2.0.1文件批量上传 测试过成功 用的最新版本的 swfuploadv2.2.0.1,现在已经出了2.5版本的,但是还是测试版本的,可能会不稳定,所以我做了swfuploadv2.2.0.1这个版本的,大文件上传,90MB的文件...

    SWFupload_struts_1.rar_struts1 swfuplo_swfupload_swfupload stru

    2. 配置SWFUpload的参数,如上传URL(应指向Struts 1的Action)、文件类型限制等。 3. 在Struts 1项目中创建处理文件上传的Action类,实现文件保存逻辑。 4. 更新struts-config.xml,添加Action和ActionMapping的...

    SWFUpload_struts2.rar

    在“SWFUpload_struts2.rar”这个压缩包中,我们可以看到以下几个关键文件和目录: 1. `.classpath`:这是Eclipse IDE的工作空间配置文件,包含了项目依赖的JAR文件路径和编译设置。对于Struts2项目,通常会包含...

    SWFupload_struts1.rar_java 批量上传_struts1批量下载_swfupload struts1

    标题 "SWFupload_struts1.rar_java 批量上传_struts1批量下载_swfupload struts1" 提供的信息表明,这是一个与Java编程语言、Struts1框架以及SWFUpload工具相关的项目或教程。SWFUpload是一个流行的老牌JavaScript和...

    ext struts2 swfupload 跨域文件上传

    "ext struts2 swfupload 跨域文件上传"这个主题涉及到三个关键技术和概念:EXTJS(Ext JS)、Struts2以及SwfUpload,它们共同解决了Web应用中的跨域文件上传问题。 EXTJS是一种强大的JavaScript库,用于构建富...

    SWFupload_struts1.rar

    为解决这些问题,我们可以采用SWFUpload库结合Struts1框架来实现大文件的Ajax上传和进度条功能。以下将详细介绍这个过程。 1. **SWFUpload介绍** SWFUpload是一款JavaScript库,它利用Flash技术实现在浏览器中进行...

    swfupload java 上传进度条 上传时间 速度 struts2 开源

    SwfUpload 是一个开源的JavaScript库,用于在Web应用程序中实现文件上传功能,它与Java后端技术如Struts2框架结合使用,可以提供高级的文件上传体验。在这个项目中,SwfUpload 被用来展示文件上传的进度、速度以及...

    struts2+swfupload上传

    Struts2和SwfUpload是两个在Web开发中用于文件上传的工具,它们结合使用可以提供一种具有用户体验优化的文件上传功能,特别是包含了进度条显示,使得用户能够清晰地了解文件上传的状态。以下是对这两个技术及其结合...

    Struts+swfupload实现文件上传功能

    2. **创建Struts Action**:在Struts框架中,我们需要创建一个Action类来处理文件上传请求。这个Action需要实现文件接收和保存的功能。在Struts配置文件(struts.xml)中,为该Action定义一个对应的URL映射。 3. **...

    java swfupload,上传,图片上传,文件上传,批量上传

    10. **工具集成**:SWFUpload可以与各种Java Web框架(如Spring MVC、Struts2)集成,理解这些框架如何处理文件上传会更便于实际开发。 博客链接中的内容可能包含了使用SWFUpload的具体步骤和示例,你可以参考该...

Global site tag (gtag.js) - Google Analytics