求指点,Struts多文件上传的问题

问题描述

前台:<form action="upload.action" method="post" enctype="multipart/form-data"><table><td><input name='name_1' value='1'><input type=file name='upload'></td><td><input name='name_2' value='2'><input type=file name='upload'></td>...<td><input name='name_i' value='i'><input type=file name='upload'></td></table></form>后台:action里面用private List<File> upload;private List<String> uploadContentType;private List<String> uploadFileName;可以接受到文件,但是不知道多文件和行的对应关键啊,比如第2行上传一个文件,第四行上传一个文件,其他行无文件,这不是乱了么。。。有心把文件域的name改为upload1,upload2等,但是struts直接给整成文件了,到哪去找文件域的name

解决方案

骚年,看来你没仔细看demo给你代码,你一看就懂了 <form> <input type=file name=upload[0] /> <input type=file name=upload[1] /> <input type=file name=upload[2] /> </form>List<File> upload懂了吧
解决方案二:
楼主可能对struts文件上传的机制不太理解,解决办法是只要你jsp里的input标签的name属性的值都是upload就可以,后台action你是可以用数组或者list都行.至于有些是空的,是不会有影响的
解决方案三:
1.你可做成动态添加行啊,例如,开始只显示一个输入框,如果用户想要继续上传文件,可以点击一个按钮增加一行,这样就不会出现第2行上传一个文件,第四行上传一个文件,其他行无文件。2.或者考虑使用其他上传组件,如sufupload,这个组件可以实现多文件上传,并且可以显示上传进度,能够给用户很好的体验
解决方案四:
我建议楼主用js在client端做点文章,在表单提交前做处理,将没有上传行对应的名字元素也remove掉,传给server的数据保证是名-数据 一一对应的。

时间: 2024-11-05 20:41:20

求指点,Struts多文件上传的问题的相关文章

struts 2 文件上传-struts 2 上传文件时,怎么样让它的默认路径是WebRoot工程下的目录

问题描述 struts 2 上传文件时,怎么样让它的默认路径是WebRoot工程下的目录 在struts2框架中使用文件上传,在 Action 的处理上传的业务方法中将临时文件中的数据保存到指定路径的文件中,我需要保存到项目的WebRoot目录下的upload文件夹中 用 String filePath=ServletActionContext.getServletContext().getRealPath("/upload/")+uploadFileName 指定文件的保存目录. 输

使用struts的文件上传组件,偶尔会出现read time out的问题,请问这是怎么回事???

问题描述 java.net.SocketTimeoutException:Readtimedoutatjava.net.SocketInputStream.socketRead0(NativeMethod)atjava.net.SocketInputStream.read(SocketInputStream.java:155)atorg.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:747)atorg

struts构建文件上传(一)

这是第一个类,与表中的信息相对应(当然如果只是简单的文件上传可以不用这样麻烦,之所以这样作是因为传到数据库里容易管理) package tester.business.maitain; public class Trainplan { private int p_id; private String p_title; private int post_index; private String issue_time; private String issuer; private String p

struts构建文件上传(六)

这是action页面, package tester.business.maitain; import tclcc.tester.util.Selector; import org.apache.struts.action.*; import javax.servlet.http.*; import java.util.*; import org.apache.struts.upload.FormFile; import java.io.*; public class MaintainActio

struts构建文件上传(九)

最后看看struts-config页面的内容 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config

struts构建文件上传(八)

这是view页面viewtrainplan.jsp(上一张jsp名为planManage.jsp) <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> <%@ taglib uri="/WEB-INF/struts-html.tld"

struts构建文件上传(三)

这是第二个类action package tester.business.maitain; import org.apache.struts.action.*; import javax.servlet.http.*; import org.apache.struts.upload.*; public class MaintainForm extends ActionForm { /** private String p_title; private int post_index; privat

struts构建文件上传(二)

这是第二个类actionform, package tester.business.maitain; import org.apache.struts.action.*; import javax.servlet.http.*; import org.apache.struts.upload.*; public class MaintainForm extends ActionForm { /** private String p_title; private int post_index; p

struts构建文件上传(七)

package tester.business.maitain; import tclcc.tester.business.maitain.Trainplan; import tclcc.tester.util.DBConn; import java.sql.*; import java.util.*; public class TrainPlanDAO { private DBConn dbconn = null; private Connection conn = null; private