首页 > 代码库 > Struts的上传
Struts的上传
文件上传很非常常用的功能,一般的思路都是要么将文件作为二进行数据存储到数据库中,当然这种不常用;还有就是将文件的名字存在数据库中,文件则存在硬盘上一个固定的文件中,这种比较常见,我就介绍比较常见的上传吧,为了简化,并没有将数据入库.
首先在index.jsp页面,写上
<li>测试struts上传</li> <form action="upload.do"method="post" enctype="multipart/form-data"> 标题:<inputtype="text" name="title"><br> 文件:<inputtype="file" name="myfile"><br> <inputtype="submit" value=http://www.mamicode.com/"提交">>
说明:需要输入标题和选择文件.对于上传文件,method必须为post,enctype必须为multipart/form-data.action为upload.do,所以需要去xml文件中配置action.Struts-config.xml页面
<form-beans> <form-beanname="uploadform"type="com.lyl.struts.UploadActionForm"></form-bean> </form-beans> <action-mappings> <actionpath="/upload" type="com.lyl.struts.UploadAction" name="uploadform" scope="request" > <forwardname="success"path="/uploadsuccess.jsp"></forward> </action> </action-mappings>需要在xml配置,path为/upload,Action为UploadAction,ActionForm为UploadActionForm.成功之后会跳转到uploadsuccess.jsp页面.
根据jsp页面需要的标题和文件,建立ActionForm
public classUploadActionForm extends ActionForm { privateString title; //上传的文件必须采用FormFile声明 privateFormFile myfile; publicString getTitle() { returntitle; } publicvoid setTitle(String title) { this.title= title; } publicFormFile getMyfile() { returnmyfile; } publicvoid setMyfile(FormFile myfile) { this.myfile= myfile; } }然后就是, Action页面对于文件的处理,从ActionForm中获取标题和文件名,将文件放置到c盘下.最后跳转到成功页面.public classUploadAction extends Action { publicActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequestrequest, HttpServletResponse response) throwsException { UploadActionFormuaf = (UploadActionForm) form; System.out.println("title="+uaf.getTitle()); System.out.println("fileName="+uaf.getMyfile().getFileName()); uaf.getMyfile().getFileData(); FileOutputStreamfos = new FileOutputStream("c:\\"+uaf.getMyfile().getFileName()); fos.write(uaf.getMyfile().getFileData()); fos.flush(); fos.close(); returnmapping.findForward("success"); } }uploadsuccess.jsp页面,就是显示一下上传成功的标题和文件名.
文件名称${uploadform.title } ${uploadform.myfile.fileName } 上传成功运行效果:输入标题,选择文件
成功,提示上传成功.
在C盘目录下找到Noname2.txt.
整个上传就是这样,很简单.但是也是很实用的功能.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。