StrutsFileUpload

          Posted on 2006-03-02 20:43 killvin 閱讀(404) 評論(0)  編輯  收藏 所屬分類: frameworks
          今天同事問我Struts如何解決文件上傳的問題,一時間沒有想起來,就到google查了一下,果然在Struts Wiki上就有非常詳細的解釋,抄錄如下,詳細的請看(http://wiki.apache.org/struts/StrutsFileUpload)



          StrutsFileUpload
          File Upload - Simple Example
          HTML
          This isn't specific to Struts, but gives a simple example of the HTML required to upload a single file.

          Two things are needed in the html page. Firstly, the form needs to specify an enctype of multipart/form-data and secondly an form control of type file.

          JSP
          The above HTML can be generated using the Struts tags in the following way

          <html:form action="/uploadMyFile.do" enctype="multipart/form-data">

          Select File: <html:file property="myFile">

          <html:submit value="Upload File"/>

          </html:form>

          ActionForm
          The ActionForm needs a property of type FormFile.

          Regular ActionForms
          import org.apache.struts.upload.FormFile;

          public class MyActionForm extends ActionForm {

          private FormFile myFile;

          public void setMyFile(FormFile myFile) {
          this.myFile = myfile;
          }

          public FormFile getMyFile() {
          return myFile;
          }
          }

          Dyna ActionForms
          In the struts-config.xml

          <form-bean name="myForm" type="org.apache.struts.action.DynaActionForm">
          <form-property name="myFile" type="org.apache.struts.upload.FormFile"/>
          </form-bean>

          Whats Needed in the Action
          Nothing special really, just retrieve the FormFile from the ActionForm, as you would any other property, and process it as you like. You can get the file name, size and file contents from the FormFile.

          public ActionForward execute(ActionMapping mapping,
          ActionForm form,
          HttpServletRequest request,
          HttpServletResponse response) throws Exception {

          MyActionForm myForm = (MyActionForm)form;

          // Process the FormFile
          FormFile myFile = myForm.getMyFile();
          String contentType = myFile.getContentType();
          String fileName = myFile.getFileName();
          int fileSize = myFile.getFileSize();
          byte[] fileData = myFile.getFileData();
          ...
          }

          File Upload Configuration
          The following parameters can be set in the <controller> element of the struts-config.xml to configure file upload:

          bufferSize - The size (in bytes) of the input buffer used when processing file uploads. Default is 4096.

          maxFileSize - The maximum size (in bytes) of a file to be accepted as a file upload. Can be expressed as a number followed by a "K", "M", or "G", which are interpreted to mean kilobytes, megabytes, or gigabytes, respectively. Default is 250M.

          multipartClass - The fully qualified Java class name of the multipart request handler class to be used with this module. Defaults is org.apache.struts.upload.CommonsMultipartRequestHandler.

          tempDir - Temporary working directory to use when processing file uploads.

          Above taken from the Configuration section in the User Guide.

          Plugging in an Alternative File Upload Mechanism
          By default Struts uses Commons File Upload.

          Alternative implementations can be plugged as long as they implement the org.apache.struts.upload.MultipartRequestHandler interface and Struts configured to use that implementation by specifying it in the multipartClass parameter in the <controller> element of the struts-config.xml

          Fair Warning: The MultipartRequestHandler interface is almost certain to change in a Struts 1.3 or higher release.
          主站蜘蛛池模板: 壶关县| 乐安县| 林西县| 苏尼特左旗| 禄丰县| 龙胜| 衡山县| 库尔勒市| 思茅市| 定结县| 富蕴县| 潼关县| 重庆市| 永年县| 康保县| 察雅县| 伊川县| 淮南市| 滦南县| 景东| 华容县| 兰溪市| 泽普县| 巴林左旗| 葵青区| 扎赉特旗| 纳雍县| 固阳县| 高唐县| 社会| 罗源县| 三台县| 达日县| 顺平县| 吉林市| 辽源市| 南开区| 玛多县| 色达县| 大厂| 贵港市|