首页 > 代码库 > 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.actionupload.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,ActionUploadAction,ActionFormUploadActionForm.成功之后会跳转到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.


        整个上传就是这样,很简单.但是也是很实用的功能.