package com.shiro.shirodemo.ftp;
import com.xiaoleilu.hutool.date.DateUtil;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.RequestContext;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.servlet.ServletRequestContext;
import org.apache.commons.io.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.util.*;
/**
* 上传辅助类
*
* @author: jwy
* @date: 2018/1/13
*/
public final class UploadUtil {
//private static final Logger logger = LogManager.getLogger();
/**
* 上传文件缓存大小限制
*/
private static int fileSizeThreshold = 1024 * 1024 * 1;
/**
* 上传文件临时目录
*/
private static final String uploadFileDir = "/uploads/";
/**
* 获取所有文本域
*
* @param request
* @param saveDir
* @return
* @throws FileUploadException
* @author Salad
* @date 2017年7月17日 上午7:59:15
*/
public static final List<?> getFileItemList(HttpServletRequest request, File saveDir) throws FileUploadException {
if (!saveDir.isDirectory()) {
saveDir.mkdir();
}
List<?> fileItems = null;
RequestContext requestContext = new ServletRequestContext(request);
if (FileUpload.isMultipartContent(requestContext)) {
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(saveDir);
factory.setSizeThreshold(fileSizeThreshold);
ServletFileUpload upload = new ServletFileUpload(factory);
fileItems = upload.parseRequest(request);
}
return fileItems;
}
/**
* 获取文本域
*
* @param request
* @param saveDir
* @param fieldName
* @return
* @throws FileUploadException
* @author Salad
* @date 2017年7月17日 上午7:59:28
*/
public static final FileItem[] getFileItem(HttpServletRequest request, File saveDir, String... fieldName)
throws FileUploadException {
if (fieldName == null || saveDir == null) {
return null;
}
List<?> fileItemList = getFileItemList(request, saveDir);
FileItem fileItem = null;
FileItem[] fileItems = new FileItem[fieldName.length];
for (int i = 0; i < fieldName.length; i++) {
for (Iterator<?> iterator = fileItemList.iterator(); iterator.hasNext(); ) {
fileItem = (FileItem) iterator.next();
// 根据名字获得文本域
if (fieldName[i] != null && fieldName[i].equals(fileItem.getFieldName())) {
fileItems[i] = fileItem;
break;
}
}
}
return fileItems;
}
/**
* 上传文件处理(支持批量)
*
* @param request
* @param namespace
* @return
* @author Salad
* @date 2017年7月17日 上午7:59:42
*/
public static Map<String, String> uploadImage(HttpServletRequest request, String namespace) {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
Map<String, String> fileNames = new HashMap<String, String>();
if (multipartResolver.isMultipart(request)) {
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
Iterator<String> iterator = multiRequest.getFileNames();
while (iterator.hasNext()) {
String key = iterator.next();
MultipartFile multipartFile = multiRequest.getFile(key);
if (multipartFile != null) {
String name = multipartFile.getOriginalFilename();
if (!"".equals(name)) {
if (name.indexOf(".") == -1 && "blob".equals(name)) {
name = name + ".png";
}
String uuid = UUID.randomUUID().toString();
String postFix = name.substring(name.lastIndexOf(".")).toLowerCase();
String fileName = uuid + postFix;
try {
String filePath = remove2Sftp(multipartFile.getBytes(), namespace, fileName);
if (filePath != null && !"".equals(filePath)) {
fileNames.put(key, filePath);
}
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
}
return fileNames;
}
public static String[] uploadImage1(HttpServletRequest request, String namespace) {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
String[] fileNames = null;
if (multipartResolver.isMultipart(request)) {
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> map = multiRequest.getFileMap();
int i = 0;
fileNames = new String[map.size()];
for (String key : map.keySet()) {
MultipartFile multipartFile = map.get(key);
System.out.println(multipartFile);
if (multipartFile != null) {
String name = multipartFile.getOriginalFilename();
if (!"".equals(name)) {
if (name.indexOf(".") == -1 && "blob".equals(name)) {
name = name + ".png";
}
String uuid = UUID.randomUUID().toString();
String postFix = name.substring(name.lastIndexOf(".")).toLowerCase();
String fileName = uuid + postFix;
try {
String filePath = remove2Sftp(multipartFile.getBytes(), namespace, fileName);
String dir = "";
if (filePath != null && !"".equals(filePath)) {
fileNames[i] = dir + filePath;
i++;
}
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
}
return fileNames;
}
/**
* 上传本地图片到ftp服务器
*
* @param filePath
* @param namespace
* @return
* @author Salad
* @date 2017年7月17日 上午7:59:58
*/
public static String uploadImage(String filePath, String namespace) {
String path = "";
if ((filePath != null && !"".equals(filePath)) && (namespace != null && !"".equals(namespace))) {
path = remove2Sftp(filePath, namespace);
}
return path;
}
/**
* 获取上传文件临时目录
*
* @param request
* @return
* @author Salad
* @date 2017年7月17日 上午8:00:11
*/
public static String getUploadDir(HttpServletRequest request) {
return request.getServletPath() + uploadFileDir + File.separator;
}
/**
* 移动文件到SFTP,并生产随机的名称
*
* @param fileP
没有合适的资源?快使用搜索试试~ 我知道了~
java+springboot+vue+shiro的后台权限管理系统.rar
共90个文件
java:73个
xml:11个
yml:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 175 浏览量
2024-02-21
15:06:08
上传
评论
收藏 149KB RAR 举报
温馨提示
java源码 仅供学习和参考,禁止一切商业行为
资源推荐
资源详情
资源评论
收起资源包目录
java+springboot+vue+shiro的后台权限管理系统.rar (90个子文件)
java+springboot+vue+shiro的后台权限管理系统
springboot-vue-shiro-master
springboot-vue-shiro-master
pom.xml 6KB
src
main
resources
application-dev.yml 728B
application-prod.yml 726B
shiro.sql 507KB
application.yml 35B
logback-spring.xml 2KB
java
com
shiro
shirodemo
Application.java 691B
ftp
UploadUtil.java 17KB
FTPFileTransmit.java 13KB
mapper
RolePermissionMapper.java 1KB
UserMapper.java 998B
AttributeDetailMapper.java 1KB
LoginLogMapper.java 971B
RoleMapper.java 715B
PermissionMapper.java 2KB
OperatingRecordMapper.java 883B
xml
AttributeMapper.xml 668B
UserMapper.xml 2KB
LoginLogMapper.xml 2KB
RolePermissionMapper.xml 2KB
UserRoleMapper.xml 428B
RoleMapper.xml 978B
OperatingRecordMapper.xml 2KB
AttributeDetailMapper.xml 948B
PermissionMapper.xml 2KB
AttributeMapper.java 688B
UserRoleMapper.java 279B
shiro
AuthRealm.java 2KB
CredentialsMatcher.java 834B
aspect
HttpAspect.java 5KB
api
RoleApi.java 4KB
LoginApi.java 1KB
SysApi.java 6KB
base
BaseApi.java 2KB
UserApi.java 5KB
PermisApi.java 3KB
utils
ResultUtil.java 1KB
GeneratorUtil.java 8KB
pojo
dto
RequstOprDto.java 1KB
RolePermisDto.java 1KB
UserDto.java 2KB
LoginTotalDto.java 616B
UserInfoDto.java 2KB
AttributeDetailDto.java 498B
RolePermisVo.java 668B
ReqTotalDto.java 701B
ParamsDto.java 2KB
PermisDto.java 824B
vo
PermisVo.java 2KB
RoleVo.java 898B
AttributeDetailVo.java 678B
UserInfoVo.java 1KB
UserVo.java 2KB
service
OperatingRecordService.java 709B
LoginLogService.java 815B
PermissionService.java 2KB
UserService.java 2KB
ipml
RolePermissionServiceImpl.java 2KB
UserServiceImpl.java 7KB
LoginLogServiceImpl.java 2KB
UserRoleServiceImpl.java 498B
PermissionServiceImpl.java 4KB
AttributeServiceImpl.java 2KB
OperatingRecordServiceImpl.java 2KB
RoleServiceImpl.java 2KB
AttributeDetailServiceImpl.java 2KB
AttributeDetailService.java 1KB
RoleService.java 937B
RolePermissionService.java 1KB
AttributeService.java 851B
UserRoleService.java 275B
entity
OperatingRecord.java 3KB
UserRole.java 1KB
RolePermission.java 1KB
Permission.java 4KB
LoginLog.java 2KB
AttributeDetail.java 1KB
Role.java 1KB
Attribute.java 1KB
User.java 3KB
exception
ExceptionHandle.java 3KB
MyException.java 449B
Enum
EnumPermissionType.java 640B
EnumRoleType.java 490B
EnumCode.java 1KB
config
ShiroConfig.java 4KB
MybatisConfig.java 6KB
CorsConfig.java 1KB
LOG_PATH_IS_UNDEFINED
info.log 22KB
error.log 0B
共 90 条
- 1
资源评论
GeekyGuru
- 粉丝: 1616
- 资源: 1099
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功