码迷,mamicode.com
首页 > 编程语言 > 详细

JavaWEB SSH文件上传

时间:2017-12-17 20:48:00      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:ace   拦截器   domain   表单   log   乱码   turn   inpu   str   

一.提交表单的<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>

  

 

 

JavaWEB SSH文件上传

标签:ace   拦截器   domain   表单   log   乱码   turn   inpu   str   

原文地址:http://www.cnblogs.com/jokerq/p/8052926.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!