zoukankan      html  css  js  c++  java
  • Struts文件上传(FormFile)

    Struts中FormFile用于文件进行上传

    1.在jsp文件中进行定义

    <form action="/StrutsFileUpAndDown/register.do" method="post" enctype="multipart/form-data">
       	名字:<input type="text" name="name" />
       	头像:<input type="file" name="file"/>
       	<input type="submit" value="注册用户">
       </form>
    

    2.在Form表单中定义FormFile

    /*
     * Generated by MyEclipse Struts
     * Template path: templates/java/JavaClass.vtl
     */
    package com.yourcompany.struts.form;
    
    import javax.servlet.http.HttpServletRequest;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.upload.FormFile;
    
    /** 
     * MyEclipse Struts
     * Creation date: 08-24-2017
     * 
     * XDoclet definition:
     * @struts.form name="userForm"
     */
    public class UserForm extends ActionForm {
    	/*
    	 * Generated Methods
    	 */
    
    	private String username;
    	private FormFile file;
    	
    	public String getUsername() {
    		return username;
    	}
    	public void setUsername(String username) {
    		this.username = username;
    	}
    	public FormFile getFile() {
    		return file;
    	}
    	public void setFile(FormFile file) {
    		this.file = file;
    	}
    
    }
    

      

    3.利用struts文件进行关联Form,关联以后

    1)利用表单实例进行获取FormFile实例,在获取以后,我们可以通过FormFile获取上传文件的各种信息

    		UserForm userForm = (UserForm) form;
    		String username = userForm.getUsername();
    		FormFile file = userForm.getFile();
    		
    		//通过formFile可以获取关于用户上传文件的各种信息
    		//用于获取文件名字
    		String fileName = file.getFileName();
    		//用于获取文件大小
    		int fileSize = file.getFileSize();
    

      

    2)通过FormFile实例获取输入流,创建一个输出流,并且在代码中获取tomcat服务器的绝对路径

    		try {
    			//获取输入流
    			is = file.getInputStream();
    		
    			//得到输出流
    			//1.得到file文件夹,上传到tomcat服务器后的绝对路径(file文件为新创建的文件夹) 
    			String filePath = this.getServlet().getServletContext().getRealPath("/file");
    			//两个"//"的其中一个"/"为转义符
    			 os=new FileOutputStream(filePath+"\"+fileName);
    			 
    			int len=0;//表示读取的字节
    			//做一个缓存,防止文件过大而造成错误
    			byte[] buff=new byte[1024];
    			while((len=is.read(buff))!=-1)
    			{
    				os.write(buff,0,len);
    			}
    			is.close();
    			os.close(); 
    		}
    

      

  • 相关阅读:
    远程连接Ubuntu中的MySQL
    以API 配置的方式来配置你的 Dubbo 应用
    jdk1.8:stream流式分组groupby
    springboot如何通过apollo动态去注册dubbo服务
    JDK动态代理[3]WeakCache缓存的实现机制
    Linq 交集、并集等集合理论学习
    Build my first Blazor app
    关于
    MySql数据库优化维度
    面霸篇:Java 集合容器大满贯(卷二)
  • 原文地址:https://www.cnblogs.com/callyblog/p/7425138.html
Copyright © 2011-2022 走看看