struts2上传多个文件时,上传控件的name属性必须一致,然后action内部通过这个name获得一个file数组。遍历数组,得到每个上传文件,但是这有一个问题就是加入每个文件是存在差异的,而这个差异是由上传端的上传控件input的id决定的,有什么办法能分辨哪个文件是由谁传来的?这个功能有很实际的需求,比如我论坛发帖,我上传了多个图片附件,然后插入到帖子里去,这明显是由顺序的,怎么识别这个顺序
解决方案 »
- 访问action,第一次会报错,刷几次就好了,然后有时候点的多了也报错!很是纳闷!
- spring+ibatis连接数据库如果用到getDatasouce,getconnection要关闭吗
- 求问:哪里有JSON的学习视频
- <logic:iterate> 如何遍历下面的内容
- 看看我的Hibernate错误信息,帮我分析一下吧?
- 高手帮忙,关于权限方面!
- 关于jdbc 和oracle 使用中的一个问题。急。
- 有关CMP Entity Bean发布到WebLogic8.1上的问题!
- 请高手指教,jbuilder+weblogic开发cmp错误,
- 不好意思我知道这蛮基础的但是我真的记不起少什么了,麻烦各位帮忙看一下好么看没看出来都谢谢您,在百度谷歌上搜也没有我这样的错误.
- 在spring 里面,如何动态识别加载服务类?
- 我想弱弱的问下:我想从本质上了解java,有那些书籍可以帮到我呢?
我就没找到一点关于name不一样时action里如何处理的例子,麻烦给个例子
jsp如下:
<form action="uploadAction" method="post" enctype="multipart/form-data">
file1: <input type="file" name="file"><br>
file2: <input type="file" name="file"><br>
file3: <input type="file" name="file"><br>
file4: <input type="file" name="file"><br>
file5: <input type="file" name="file"><br>
<input type="submit">
</form>
对应的action部分代码如下:
private List<File> file;
private java.util.List<String> fileFileName;
private java.util.List<String> fileContentType; public String execute() throws Exception {
for (int i = 0; i < file.size(); i++)
{
java.io.InputStream is = new java.io.FileInputStream(file.get(i));
java.io.OutputStream os = new java.io.FileOutputStream(
"E:\\upload\\" + fileFileName.get(i));
byte buffer[] = new byte[8192];
int count = 0;
while ((count = is.read(buffer)) > 0)
{
os.write(buffer, 0, count);
}
os.close();
is.close();
}
return SUCCESS;
}这里的file,fileFileName,fileContentType按你jsp中file组件的name属性来设置,
比好你的name="XXX",那么对应的就是:XXX,XXXFileName,XXXContentType。另外不要忘了set和get方法这样动行之后,就能在对应的路径找到对应的上传文件,名字和格式一点没有变,这样就满足你要求了吧???