您的位置:首页 > 编程语言 > Java开发

struts 实现文件上传

2008-06-16 19:25 274 查看
<formaction="fileupload.action"method="post"enctype="multipart/form-data">

<inputtype="file"name="file"><br>

<inputtype="submit"value="submit">

</form>

jsp中的表单

packagecom.actions;

importjava.io.*;

importorg.apache.struts2.ServletActionContext;

importcom.opensymphony.xwork2.ActionSupport;

publicclassFileUploadActionsextendsActionSupport{

privatestaticfinalintBUFFER_SIZE=16*1024;

privateFilefile;

privateStringcontentType;

privateStringfileName;

publicFilegetFile(){

returnfile;

}

publicvoidsetFile(Filefile){

this.file=file;

}

publicvoidsetFileContentType(StringcontentType){

this.contentType=contentType;

}

publicvoidsetFileFileName(StringfileName){

this.fileName=fileName;

}

publicStringexecute(){

FiledstFile=newFile(ServletActionContext.getServletContext().getRealPath("/upload"+"/"+fileName));

try{

InputStreamis=newBufferedInputStream(newFileInputStream(file),BUFFER_SIZE);

OutputStreamos=newBufferedOutputStream(newFileOutputStream(dstFile),BUFFER_SIZE);

byte[]buffer=newbyte[BUFFER_SIZE];

while(is.read(buffer)>0){

os.write(buffer);

}

is.close();

os.close();

}catch(Exceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

returnSUCCESS;

}

}


action代码


<actionname="fileupload"class="com.actions.FileUploadActions">

<interceptor-refname="fileUpload">

<paramname="allowedTypes">

image/bmp,image/png,image/gif,image/jpeg

</param>

</interceptor-ref>

<interceptor-refname="defaultStack"/>

<resultname="input">index.jsp</result>

<resultname="success">index.jsp</result>

</action>



struts.xml中的代码

在上面的代码中我分别写了setFileContentType方法和setFileFileName方法,这两个方法并没有和页面上的任何代码绑定,其实表单file不但绑定了contentType(文件类型)和FileName(文件名)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: