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

    文件上传的时候struts会使用默认18个拦截器中的<interceptor name="fileUpload" class="org.apache.struts2.interceptor.FileUploadInterceptor"/>进行处理

    文件上传Action类:

    Action类中定义三个属性:

    private File file1; 相应表单:<input type="file" name="file1">
    private String file1FileName; 文件名称
    private String file1ContentType;文件的类型(MIME)

    而且提供这三个属性的set方法。

    文件上传表单:

    <form action="${pageContext.request.contextPath }/fileUploadAction" method="post" enctype="multipart/form-data">
      		username:<input type="text" name="userName"><br/>
      		文件:<input type="file" name="file1"><br/>
      		<input type="submit" value="上传">
      	</form>

    文件上传使用的Action类UploadAction

    package cn.itcast.upload;
    
    import java.io.File;
    import java.io.IOException;
    
    import org.apache.commons.io.FileUtils;
    import org.apache.struts2.ServletActionContext;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class UploadAction extends ActionSupport{
    
    	// 相应表单:<input type="file" name="file1">
    	private File file1; 
    	// 文件名称
    	private String file1FileName;
    	// 文件的类型(MIME)
    	private String file1ContentType;
    	public void setFile1(File file1) {
    		this.file1 = file1;
    	}
    	public void setFile1FileName(String file1FileName) {
    		this.file1FileName = file1FileName;
    	}
    	public void setFile1ContentType(String file1ContentType) {
    		this.file1ContentType = file1ContentType;
    	}
    	public String upload() throws IOException{
    		//得到上传的目录
    		String path=ServletActionContext.getServletContext().getRealPath("/upload");
    		//创建文件
    		File file=new File(path,file1FileName);
    		//讲上传的文件上传到指定的目录
    		FileUtils.copyFile(file1, file);
    		return "success";
    	}
    }
    
    struts.xml文件的配置:

    <struts>
    	<package name="upload_" extends="struts-default">
    		<!-- 注意: action 的名称不能用keyword"fileUpload" -->
    		<action name="fileUploadAction" class="cn.itcast.upload.UploadAction" method="upload">
    			<result name="success">/index.jsp</result>
    			<!-- 配置错误视图 -->
    			<result name="input">/error.jsp</result>
    		</action>
    		</package>
    </struts>



  • 相关阅读:
    Python tkinter 实现简单登陆注册 基于B/S三层体系结构,实现用户身份验证
    Python3连接MySQL数据库实战
    Python3 报错'latin-1' codec can't encode character 解决方案
    python 操作excle 之第三方库 openpyxl学习
    对象的深拷贝和浅拷贝
    手机wap站全屏展示隐藏地址栏和状态栏代码
    JS调用App方法及App调用JS方法
    Vue里给v-html元素添加样式
    为什么JavaScript中移动端使用ontouchend无法获取touches数组
    什么是并发和并行
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6792090.html
Copyright © 2011-2022 走看看