一个浏览上传多个文件的java代码
就是一个浏览按钮,然后能按着ctrl选择多个文件上传,有谁做过吗?知道具体方法吗?我上网找了好多资料都是循环动态添加浏览按钮,实现多个上传的,但是这种不满足我的需求,请各...
就是一个浏览按钮,然后能按着ctrl选择多个文件上传,有谁做过吗?知道具体方法吗?我上网找了好多资料都是循环动态添加浏览按钮,实现多个上传的,但是这种不满足我的需求,请各位大侠指导指导,谢谢!
展开
5个回答
推荐于2016-10-27 · 知道合伙人互联网行家
关注
展开全部
在Java中可以用struts2实现多个文件同时上传代码,功能代码如下:
1、upload.jsp页面(选择上传文件)
<form action="upload.action" name="uploadForm" method="post" enctype="multipart/form-data">
文件标题:<input type="text" name="title"/><br/>
选择文件-:<input type="file" name="upload"/><br/>
选择文件二:<input type="file" name="upload"/><br/>
选择文件三:<input type="file" name="upload"/><br/>
<input type="submit" value="upload"/>
</form>
2、action代码如下:
//对应的Action依次遍历所有文件域,然后生成对应的输入文件流,输出文件流在指定的服务器保存路径中添加对应的输出文件流保存文件。同时动态指定服务器上文件的保存路径。
package com.inspur.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UploadAction extends ActionSupport {
private String title;
private File[] upload;
private String[] uploadFileName;
private String[] uploadContentType;
private String savePath;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public File[] getUpload() {
return upload;
}
public void setUpload(File[] upload) {
this.upload = upload;
}
public String[] getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String[] uploadFileName) {
this.uploadFileName = uploadFileName;
}
public String[] getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String[] uploadContentType) {
this.uploadContentType = uploadContentType;
}
public String getSavePath() {
return ServletActionContext.getRequest().getRealPath(savePath);
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public String upload()throws Exception{
File[] files=this.getUpload();
for(int i=0;i<files.length;i++){
FileOutputStream fos=new FileOutputStream(this.getSavePath()+"\\"+this.getUploadFileName()[i]);
byte[] buffer=new byte[1024];
FileInputStream fis=new FileInputStream(files[i]);
int len=0;
while((len=fis.read(buffer))>0){
fos.write(buffer,0,len);
}
}
return SUCCESS;
}
}
3、success.jsp页面代码如下(上传成功界面显示所有上传的图片)
文件标题:<s:property value="title"/><br/>
第一个图片:<img alt="first" src="<s:property value="'upload/'+uploadFileName[0]"/>"/><br/>
第二个图片:<img alt="second" src="<s:property value="'upload/'+uploadFileName[1]"/>"/><br/>
展开全部
JSF上有一个控件是专门实现文件上传的. 我之前做过
更多追问追答
追问
可以实现一个浏览按钮,然后按着ctrl键,选择多个文件上传吗?
追答
当然
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个还真没有做过,我以前只做过单个上传
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
swfupload 你去查下这个插件、这个能满足你的需求。
更多追问追答
追问
请问,你做过吗?我也查了这个swfupload,但是出来的都是动态添加浏览,然后多次选择,实现上传的,不是我想要的效果
追答
做过,不是,是否多个上传 是由SWFUpload.prototype.selectFiles来控制的,如果是调用SWFUpload.prototype.selectFile那么就是多次选择,而且也可以通过传递过来的参数来控制同时上传几个文件;你可以去官网看下 它的demo;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SWFUpload 批量上传 挺好用
追问
请问,你做过吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询