为什么我用struts2做的文件上传总是接到null值呢?

问题描述

我用struts2 做的文件上传1.前台imgUp.ftl代码为:<form action="upload.action" method="post" enctype="multipart/form-data"><div id="upforms"><div class="upfileDesc">选择类型:<select name="selectDir" class="select1" ><option value="a">a文件夹</option><option value="b">b文件夹</option></select></div><div class="upfroms1"><input type="file" name="upload" /></div><div class="upregedit_submit"><input type="submit" value="上传"/></div><div class="upfileDesc"><span class="">只能上传jpg,gif类型图片,大小不能超过5M</span></div><div class="upfileDesc"><span class="">${fieldErrors['fileUp']!}</span></div></div></form>2.action代码为:public class UploadAction extends BasePageSupport{private String selectDir;//上传目录参数private File upload;//上传文件域private String uploadContentType;//上传文件的类型private String uploadFileName;//上传文件名public String getSelectDir() {return selectDir;}public void setSelectDir(String selectDir) {this.selectDir = selectDir;}public File getUpload() {return upload;}public void setUpload(File upload) {this.upload = upload;}public String getUploadContentType() {return uploadContentType;}public void setUploadContentType(String uploadContentType) {this.uploadContentType = uploadContentType;}public String getUploadFileName() {return uploadFileName;}public void setUploadFileName(String uploadFileName) {this.uploadFileName = uploadFileName;}/** * 文件上传入口 * * @return String * @throws Exception */public String toUpload() throws Exception {return SUCCESS;}/** * 文件上传 * * @return String * @throws Exception */public String uploadFile() throws Exception{System.out.println("文件名="+getUploadFileName());System.out.println("文件类型="+getUploadContentType());System.out.println("上传目录="+getSelectDir());return SUCCESS;}}3.struts.xml配置<!-- 配置解析请求参数时所用的解码集 --><constant name="struts.custom.i18n.resources" value="globalMessages"/><constant name="struts.i18n.encoding" value="GBK"/><package name="upload" namespace="/" extends="xtiger-default"><!-- 文件上传入口 --><action name="toUpload" class="com.comabc.web.action.front.UploadAction" method="toUpload"> <result> <param name="location">/WEB-INF/template/front/imgUp.ftl</param> </result></action><!-- 文件上传 --><action name="upload" class="com.comabc.web.action.front.UploadAction" method="uploadFile"><result name="success"><param name="location">/WEB-INF/template/front/imgUp.ftl</param></result><result name="input"><param name="location">/WEB-INF/template/front/imgUp.ftl</param></result></action></package>4.web.xml配置还是以前一样的: <!-- 定义struts2的filterDispathcer的filter --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <!-- filterDispatcher用来初始化struts2并且处理所有的web请求 --> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> <!-- FilterDispatcher辅助类开始,多文件上传时用 --><filter> <filter-name> struts-cleanup </filter-name> <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class> </filter> <filter-mapping> <filter-name>struts-cleanup</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- FilterDispatcher辅助类结束 -->大家帮我看看。哪里不对吗?我运行。输出总是:文件名=null文件类型=null上传目录=a文件名和文件类型都接收不到!

解决方案

JSP没什么问题,问题出在UploadAction 中。你的上传文件类型和文件名根本就没有赋值当然为空了。……FormFile file = form.getImportFile();……然后从file 中获取文件信息给变量private String uploadContentType;//上传文件的类型 private String uploadFileName;//上传文件名 赋值。另外JSP中我修改一下:<html:file property="upload" />要用到apache的 commons-fileupload.jar包,struts自带有这个包。

时间: 2024-10-11 15:32:55

为什么我用struts2做的文件上传总是接到null值呢?的相关文章

struts2的多文件上传问题

问题描述 struts2的多文件上传问题 我现在在做多文件上传,前台的 value='' /> value=''/> file的name都不是固定的,因为我现在要上传文件,并且要把路径存到数据库当中,要怎么做

AjaxFileUpload+Struts2实现多文件上传功能

本文重点给大家介绍AjaxFileUpload+Struts2实现多文件上传功能,具体实现代码大家参考下本文. 单文件和多文件的实现区别主要修改两点, 一是插件ajaxfileupload.js里接收file文件ID的方式 二是后台action是数组形式接收 1.ajaxFileUpload文件下载地址http://www.phpletter.com/Demo/AjaxFileUpload-Demo/ 2.引入jquery-1.8.0.min.js.ajaxFileUpload.js文件 3.文

AjaxFileUpload结合Struts2实现多文件上传(动态添加文件上传框)

上篇文章http://www.jb51.net/article/124489.htm介绍了ajaxfileupload实现多文件上传, 但只是固定的文件个数,如果需求不确定是多少文件 则我们就需要动态的添加文件上传框,以实现灵活性. 基于上篇基本框架是不变的,主要修改以下几个方面 1.jQuery实现动态添加删除文件上传框 2.获取文件上传框的ID 3.ajaxfileupload.js里将ID数组转换为需要的Object数组 依次解决上面问题 一.实现动态添加删除文件上传框 <body> &

ria-想自己做个文件上传控件,用什么方法好?

问题描述 想自己做个文件上传控件,用什么方法好? RT,因为工作需要,需要实现一个批量上传文件的功能,除此之外,还需要在选择文件的时候提供针对每个文件的复选按钮,附加一些信息,因此很难在网上找到一中现成的插件,就像自己实现一个. 最早的时候看到的是activeX方式,觉得比较可行. 后来又发现有RIA技术,感觉比较方便. 就想问一下有过这方面经验的前辈,用哪种方式实现好一点?或者还有其他方式?求前辈高人不吝赐教,谢了! 解决方案 swfupload是一个选择,世界上已经有了轮子,你不必再去造轮子

同志们有没有做过文件上传到另一个服务器(用磁盘映射)技术

问题描述 同志们有没有做过文件上传到另一个服务器(用磁盘映射)技术谁有详细信息呀 解决方案 解决方案二:用磁盘映射的方式读取文件比较容易,写入就比较困难,开始遇到你同样的问题,现在用磁盘阵列来解决了

struts2 配置的文件上传拦截器没有生效

问题描述 struts2配置了文件上传拦截器只允许上传图片,为什么没有生效的呢?其他类型文件还是能够上传 解决方案 解决方案二:但其他文件上传后台会报错,其实没传成功的吧这个要上传前端控制下吧

struts2+jsp实现文件上传的方法_JSP编程

本文实例讲述了struts2+jsp实现文件上传的方法.分享给大家供大家参考.具体如下: 1. java代码: package com.wang.test; import java.io.InputStream; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionSupport; public cla

关于Struts2中实现文件上传

问题描述 今天下午用Struts2.0做了一个文件上传,一老报错,想请大家帮忙看看struts.xml如下:<!----><!----><struts><!----><constant name="struts.custom.i18n.resources" value="globalMessages"></constant><!----><constant name="

struts2之单个文件上传(特别推荐)

通过2种方式模拟单个文件上传,效果如下所示 开发步骤如下: 1.新建一个web工程,导入struts2上传文件所需jar,如下图 目录结构              2.新建Action 第一种方式 package com.ljq.action; import java.io.File; import org.apache.commons.io.FileUtils; import org.apache.struts2.ServletActionContext; import com.opensy