SSH环境下实现文件文件上传到服务器

SSH环境下实现文件上传

什么是文件上传

将本地文件通过流的形式写到服务器上

文件上传技术

  • jspSmartUpload(少用)
  • fileupload*(apache commons下的一个子项目)
  • Servlet3.0
  • struts2框架
    • 底层的实现Fileupload,对Fileupload进行封装
      ##文件上传要素
  1. 表单的提交方式必须是post
  2. 表单中需要提供而且这个文件项必须有name属性和值
  3. 表单的enctype属性必须是multipart/form-data

文件上传代码实现(以crm项目为例)

  • 提供文件上传项

在这里插入图片描述
在这里插入图片描述

  • 在CustomerAction中提供三个成员属性,并且提供set方法
    在这里插入图片描述

    • String uploadFileName;//上传的文件名称,前面是表单中的name属性的值+FileName
    • String uploadContentType;//上传的文件的类型
    • File upload; //上传的文件
  • 修改action中的save方法
    在这里插入图片描述

  • 配置文件上传的拦截器
    在这里插入图片描述

附上UploadUtils源码

import java.util.UUID;

/**
 * 文件上传的工具类
 * @author jt
 *
 */
public class UploadUtils {
    
    
	/**
	 * 解决目录下文件名重复的问题
	 * @param fileName
	 * @return
	 */
	public static String getUuidFileName(String fileName){
    
    
		int idx = fileName.lastIndexOf("."); // aa.txt
		String extions = fileName.substring(idx);
		return UUID.randomUUID().toString().replace("-", "")+extions;
	}
	
/***
 *
 * @param uuidFileName
 * @return java.lang.String
 * @author MXL
 * @date 2019/2/3 14:06
 */
	public static String getPath(String uuidFileName){
    
    
		int code1 = uuidFileName.hashCode();
		int d1 = code1 & 0xf; // 作为一级目录
		int code2 = code1 >>> 4;
		int d2 = code2 & 0xf; // 作为二级目录
		return "/"+d1+"/"+d2;
	}
}

注意导包别导错

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/mxl00z/article/details/86759552