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;
	}
}

注意导包别导错

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值