• 文件上传


    //准备文件

      

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <%@ taglib prefix="s" uri="/struts-tags" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        <title>文件上传</title>
      </head>
      <body>
      <!-- 上传页面的准备 -->
      <s:form action="upload.action" enctype="multipart/form-data" method="post">
          <s:textfield name ="title" label ="标题"/><br/>
          <s:file name ="upload" label="选择文件"/><br/>
          <s:submit name ="submit" value ="上传文件"/>
      </s:form> 
      </body>
    </html>

    //在struts.xml中配置相应的action

     <action name ="upload" class="action.UploadAction">
            <!--通过param参数设置保存目录的路径 -->
            <param name="savePath">/image</param>
            <result name="success">/upload_success.jsp</result>
        </action>

    //在根据action节点找对应的类

    package action;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    
    import org.apache.struts2.ServletActionContext;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class UploadAction extends ActionSupport{
        //封装上传文件的属性
        private File upload;
        //封装上传文件的类型
        private String uploadContentType;
        //封装上传文件的名称
        private String uploadFileName;
        
        public File getUpload() {
            return upload;
        }
        public void setUpload(File upload) {
            this.upload = upload;
        }
        public String getUploadContentType() {
            return uploadContentType;
        }
        public void setUploadContentType(String uploadContentType) {
            this.uploadContentType = uploadContentType;
        }
        public String getUploadFileName() {
            return uploadFileName;
        }
        public void setUploadFileName(String uploadFileName) {
            this.uploadFileName = uploadFileName;
        }
        public void setSavePath(String savePath) {
            this.savePath = savePath;
        }
        //获取文件上传的路径
        private String savePath;
        @Override
        public String execute() throws Exception {
                //创建缓存数组
                byte [] buffer =new byte[1024];
                //读取文件
                    FileInputStream fis =new FileInputStream(getUpload());
                    //保存文件,并设置保存目录的路径
                    FileOutputStream fos =new FileOutputStream(getSavePath()+"\"+this.getUploadFileName());
                    int length =fis.read(buffer);
                    while(length>0){
                        //每次写入length长度的内容
                        fos.write(buffer,0,length);
                        length=fis.read(buffer);
                    }
                    fis.close();
                    fos.flush();
                    fos.close();
            return SUCCESS;
        }
        public String getSavePath(){
            return ServletActionContext.getServletContext().getRealPath(savePath);
        }
    }

    //如果成功就去找成功页面

    <!--成功页面  -->
     上传文件成功!
     您上传的文件是:<s:property value="uploadFileName"/><br/>
     文件类型:<s:property value="uploadContentType"/>
  • 相关阅读:
    【BZOJ1023】仙人掌图(SHOI2008)-圆方树+DP+单调队列
    【BZOJ4816】数字表格(SDOI2017)-莫比乌斯反演+数论分块
    【BZOJ3529】数表(SDOI2014)-莫比乌斯反演+树状数组
    【BZOJ3714】Kuglarz(PA2014)-最小生成树
    javascript div元素后追加节点
    php多文本框提交
    有几数组表单,js怎么获得数组并动态相加输出到文本框
    SqlCommand.Parameters.add()方法
    ASP.net后台弹出消息对话框的方法!【转】
    Access中的SELECT @@IDENTITY
  • 原文地址:https://www.cnblogs.com/myhome-1/p/5943886.html
Copyright © 2020-2023  润新知