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

    一.提交表单的<form> method属性必须为post  并且添加enctype="multipart/form-data" 属性

    前台:

    <td>上传资质:</td>
    	<td>
    		<input type="file" name="upload"> 					
    	</td>
    

      

     UploadUtils工具类
    package com.home.utils;
    
    import java.util.UUID;
    
    /**
     * 文件上床的工具类
     * @author Administrator
     *
     */
    public class UploadUtils {
    	/**
    	 * 传入文件名称,返回唯一的名称
    	 * @param filename
    	 * @return
    	 */
    	public static String getUUIDName(String filename){
    		//先查找 从后往前找
    		int index = filename.lastIndexOf(".");
    		//截取后缀名
    		String lastname = filename.substring(index,filename.length());
    		//System.out.println(filename);
    		//唯一字符串
    		String uuid = UUID.randomUUID().toString().replace("-", "");//默认带有-
    		
    		return uuid+lastname;
    	}
    	public static void main(String[] args) {
    		String filename = "gril.jsp";
    		System.out.println(getUUIDName(filename));
    	}
    }
    

      domain等文件中添加文件上传路径属性

      WEB层代码(连同增加客户一起)

    /**
    	 * 文件上传,需要在Action类中定义成员的属性,命名是有规则的!!
    	 * private File upload;  //表示要上传的文件(与前台name一致) io包的File类
    	 * private String uploadFileName; //表示上传文件的名称(没有中文乱码--已解决)
    	 * private String uploadContentType;//表示上传文件的MIME类型
    	 * 提供set方法,拦截器就注入值了
    	 */
    	private File upload;
    	private String uploadFileName;
    	private String uploadContentType;
    
    	public void setUpload(File upload) {
    		this.upload = upload;
    	}
    
    	public void setUploadFileName(String uploadFileName) {
    		this.uploadFileName = uploadFileName;
    	}
    
    	public void setUploadContentType(String uploadContentType) {
    		this.uploadContentType = uploadContentType;
    	}
    	
    	public String save() throws IOException{
    		//做文件的上传,说明用户选择了上传的文件
    		if (uploadFileName!=null) {
    			//打印
    			//System.out.println("文件名称:"+uploadFileName);
    			System.out.println("文件类型:"+uploadContentType);
    			//把名称处理一下
    			String uuidname = UploadUtils.getUUIDName(uploadFileName);
    			//把文件上传到D:\Tomcat8.0\webapps\upload
    			String path = "D:\Tomcat8.0\webapps\upload\";
    			//创建file对象
    			File file = new File(path+uuidname);
    			//简单方式
    			FileUtils.copyFile(upload, file);//导org.apache.commons.io的包
    			
    			//把文件上传的路径,保存到客户表中
    			customer.setFilepath(path+uuidname);
    		}
    		customerService.save(customer);
    		return "save";
    	}
    

      

    **注

      1.文件大小非常有限(默认2097152为2M),可以自行设置

    在struts.xml文件中添加 

    <!-- 设置上传文件总大小 -->
    	<constant name="struts.multipart.maxSize" value="20971520"></constant>
    

      

      2.也可以设置允许的扩展名

    在struts.xml文件中的上传文件action标签中添加

    <!-- 引入默认拦截器 -->
    			<interceptor-ref name="defaultStack">
    				<!-- 决定上传文件的类型 -->
    				<param name="fileUpload.allowedExtensions">.jpg,.txt</param>
    			</interceptor-ref>
    

      

     

  • 相关阅读:
    题目1007:奥运排序问题(自定义排序问题)
    题目1005:Graduate Admission(录取算法)
    九度OJ小结2
    题目1049:字符串去特定字符(简单字符判断)
    题目1111:单词替换(字符串查找)
    题目1168:字符串的查找删除(字符串操作)
    题目1455:珍惜现在,感恩生活(多重背包问题)
    题目1454:Piggy-Bank(完全背包问题)
    题目1453:Greedy Tino(dp题目)
    题目1452:搬寝室(dp题目)
  • 原文地址:https://www.cnblogs.com/jokerq/p/8052926.html
Copyright © 2011-2022 走看看