zoukankan      html  css  js  c++  java
  • 文件上传

    文件上传

    //准备文件

      

    复制代码
    <%@ 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"/>
  • 相关阅读:
    创建二叉树
    并查集
    opn模块
    【ES6】map、reduce、filter、sort、箭头函数、class继承、yield
    css应用视觉设计
    json解决ajax跨域的原理
    flex盒子布局
    前后台交互ajax请求模块
    react后台项目开发(一)
    高阶函数&&高阶组件(二)
  • 原文地址:https://www.cnblogs.com/lianceng/p/5959184.html
Copyright © 2011-2022 走看看