java action文件下载_JAVA action中如何 上传 下载文件??

展开全部

/**

上传32313133353236313431303231363533e4b893e5b19e31333264633536文件

*/

public class FileAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response)

throws Exception {

try {

FileForm fileform = (FileForm) form;

//取得请求的文件集合

Hashtable hash = fileform.getMultipartRequestHandler().getFileElements();

//得到hashtable的枚举值

Enumeration enu = hash.elements();

//如果该枚举值包含有其它的文件

while(enu.hasMoreElements()) {

//得到文件

FormFile file = (FormFile) enu.nextElement();

System.out.println(file);

add(file);

}

return mapping.findForward("yes");

} catch (Exception e) {

e.printStackTrace();

}

return super.execute(mapping, form, request, response);

}

public void add(FormFile file){

try {

//取得写文件的目录

String url=servlet.getServletContext().getRealPath("upload");

File f1=new File(url);

if(!f1.exists()){//如果文件目录不存在

f1.mkdirs();//创建目录

}

String fileName=file.getFileName();

//创建一个文件输入流

InputStream is=file.getInputStream();

OutputStream out=new FileOutputStream(url+"/"+fileName);

int byteRead=0;

byte[] by=new byte[8192];

while((byteRead=is.read(by, 0, 8192))!=-1){

out.write(by, 0, byteRead);

}

out.close();

is.close();

file.destroy();

} catch (Exception e) {

e.printStackTrace();

}

}

}

/**

下载文件

*/

页面一开始进去action,action负责把file文件夹下的所有文件读入一个ArrayList中

Action代码如下:

ArrayList list = new ArrayList();

String path=request.getRealPath("/")+"file";

String FullPath;

//System.out.println(path);

myDir=new File(path);

list.clear();

contents=myDir.listFiles();

for(int i=0;i

FullPath=contents.getName();

list.add(FullPath);

//System.out.println(FullPath);

}

request.setAttribute("list",list);

ActionForward forward=new ActionForward("/download.jsp");

return forward;

然后进入download.jsp中,这个页面主要负责把所有文件显示,并提供下载连接,代码如下:

for(int i=0;i

{

String a=java.net.URLEncoder.encode((String)list.get(i));

out.print(""+list.get(i)+"
");

}

%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值