Commit a3495659 by zhoujinghao

上传相关接口提交

1 parent 7ff5739c
Showing 22 changed files with 648 additions and 7 deletions
package org.nafmii.admin.att.controller;
import cn.hutool.core.io.FileUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.nafmii.admin.att.service.AttService;
import org.nafmii.common.response.ApiResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.InputStream;
/**
* @author:zhoujh
* @Function:TODO
* @date 2021/5/7 14:30
* @ClassName:文件服务公共接口
* @version:
* @remark:
*/
@RestController
@RequestMapping("/nafmii/admin/att")
@Api(tags = "2.0.2", description = "上传文件到文件服务器【zjh】")
@Slf4j
public class AttController {
@Autowired
private AttService attService;
/**
*
* @name: uploadToFtp
* @description: 上传文件到ftp
* @params: []
* @return: java.lang.String
* @date: 2019/12/18 15:48
* @auther:
*
**/
@ApiOperation( value = "上传文件到ftp",notes = "上传文件到ftp")
@PostMapping(value = "/uploadToFtp",headers = "content-type=multipart/form-data")
@ResponseBody
public ApiResponse uploadToFtp(@RequestParam("description") String description,
@RequestParam("userId") String userId,
@RequestParam("files") MultipartFile[] files) {
log.info("外部网关通过ftp批量上传文件名称参数================》{}", files);
ApiResponse apiResponse = attService.uploadToFtp(files,description,Long.valueOf(userId));
return apiResponse;
}
/**
* 下载ftp上文件到本地
* @return
*/
@ApiOperation( value = "下载ftp上文件到本地",notes = "下载ftp上文件到本地")
@PostMapping(value = "/downloadFile",headers = "content-type=multipart/form-data")
@ResponseBody
public ApiResponse downloadFile(@RequestParam("files") @Validated MultipartFile[] files) {
ApiResponse apiResponse = attService.downloadFile(files);
return apiResponse;
}
}
package org.nafmii.admin.att.dao;
import org.nafmii.admin.att.entity.AttachmentInfoPO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 公用附件表 Mapper 接口
* </p>
*
* @author zjh
* @since 2021-05-07
*/
public interface AttachmentInfoMapper extends BaseMapper<AttachmentInfoPO> {
}
package org.nafmii.admin.att.dao;
import org.nafmii.admin.att.entity.BusinessAttachmentInfoPO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author zjh
* @since 2021-05-07
*/
public interface BusinessAttachmentInfoMapper extends BaseMapper<BusinessAttachmentInfoPO> {
}
package org.nafmii.admin.att.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* AttachmentInfoDto对象.对应实体描述:公用附件表
*/
@Data
@ApiModel("AttachmentInfoDto对象")
public class AttachmentInfoDto {
@ApiModelProperty("附件id")
private String id;
@ApiModelProperty("源文件名称包括后缀")
private String fileName;
@ApiModelProperty("相对url")
private String fileUrl;
@ApiModelProperty("文件存储相对目录")
private String filePath;
@ApiModelProperty("描述")
private String description;
@ApiModelProperty("软删除字段0未删除1已删除")
private String delFlag;
@ApiModelProperty("创建人")
private Long createUser;
@ApiModelProperty("创建时间")
private Date createDate;
@ApiModelProperty("修改人")
private Long updateUser;
@ApiModelProperty("修改时间")
private Date updateDate;
}
package org.nafmii.admin.att.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* AttachmentInfoDto对象.对应实体描述:公用附件表
*/
@Data
@ApiModel("AttachmentInfoListDto对象")
public class AttachmentInfoListDto {
@ApiModelProperty("附件集合信息")
List<AttachmentInfoDto> attachmentInfoDtoList;
}
package org.nafmii.admin.att.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 公用附件表
* </p>
*
* @author zjh
* @since 2021-05-07
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("ATTACHMENT_INFO")
@ApiModel(value="AttachmentInfoPO对象", description="公用附件表")
public class AttachmentInfoPO extends Model {
private static final long serialVersionUID=1L;
@ApiModelProperty(value = "附件id")
@TableId("ID")
private Long id;
@ApiModelProperty(value = "源文件名称")
@TableField("FILE_NAME")
private String fileName;
@ApiModelProperty(value = "相对url")
@TableField("FILE_URL")
private String fileUrl;
@ApiModelProperty(value = "文件存储相对目录")
@TableField("FILE_PATH")
private String filePath;
@ApiModelProperty(value = "描述")
@TableField("DESCRIPTION")
private String description;
@ApiModelProperty(value = "是否有效 0 有效 1无效")
@TableField("IS_ENABLE")
private String isEnable;
@ApiModelProperty(value = "创建人")
@TableField("CREATE_USER_ID")
private Long createUserId;
@ApiModelProperty(value = "修改人")
@TableField("UPDATE_USER_ID")
private Long updateUserId;
@ApiModelProperty(value = "创建时间")
@TableField("CREATE_TIME")
private LocalDateTime createTime;
@ApiModelProperty(value = "更新时间")
@TableField("UPDATE_TIME")
private LocalDateTime updateTime;
}
package org.nafmii.admin.att.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author zjh
* @since 2021-05-07
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("BUSINESS_ATTACHMENT_INFO")
@ApiModel(value="BusinessAttachmentInfoPO对象", description="")
public class BusinessAttachmentInfoPO extends Model {
private static final long serialVersionUID=1L;
@ApiModelProperty(value = "主键id")
@TableId("ID")
private Long id;
@ApiModelProperty(value = "业务类型")
@TableField("BUSINESS")
private String business;
@ApiModelProperty(value = "业务id")
@TableField("BUSINESS_ID")
private Long businessId;
@ApiModelProperty(value = "附件id")
@TableField("ATTACHMENT_ID")
private Long attachmentId;
@ApiModelProperty(value = "创建人")
@TableField("CREATE_USER_ID")
private Long createUserId;
@ApiModelProperty(value = "修改人")
@TableField("UPDATE_USER_ID")
private Long updateUserId;
@ApiModelProperty(value = "创建时间")
@TableField("CREATE_TIME")
private LocalDateTime createTime;
@ApiModelProperty(value = "更新时间")
@TableField("UPDATE_TIME")
private LocalDateTime updateTime;
@ApiModelProperty(value = "排序")
@TableField("SORT")
private Integer sort;
@ApiModelProperty(value = "描述")
@TableField("DESCRIPTION")
private String description;
@ApiModelProperty(value = "是否有效 0 有效 1无效")
@TableField("IS_ENABLE")
private String isEnable;
}
package org.nafmii.admin.att.service;
import org.nafmii.admin.att.dto.AttachmentInfoListDto;
import org.nafmii.common.response.ApiResponse;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.List;
/**
* @author:zhoujh
* @Function:TODO
* @date 2021/5/7 14:42
* @ClassName:
* @version:
* @remark:
*/
public interface AttService {
//下载ftp上文件到本地
ApiResponse downloadFile(MultipartFile[] files);
//上传文件到ftp
ApiResponse uploadToFtp(MultipartFile[] files, String description, Long userId);
//ftp上传存库操作
ApiResponse uploadByFtp(AttachmentInfoListDto attachmentInfoListDto);
}
package org.nafmii.admin.att.service.impl;
import cn.hutool.core.bean.copier.BeanCopier;
import cn.hutool.core.io.FileUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.nafmii.admin.att.dao.AttachmentInfoMapper;
import org.nafmii.admin.att.dto.AttachmentInfoDto;
import org.nafmii.admin.att.dto.AttachmentInfoListDto;
import org.nafmii.admin.att.entity.AttachmentInfoPO;
import org.nafmii.admin.att.service.AttService;
import org.nafmii.admin.att.vo.EshopAttachmentInfoVo;
import org.nafmii.common.constant.CommonEnum;
import org.nafmii.common.constant.MessageEnum;
import org.nafmii.common.param.BeanTransferUtils;
import org.nafmii.common.response.ApiResponse;
import org.nafmii.common.utils.FtpUtil;
import org.nafmii.common.utils.SnowFlakeUtil;
import org.nafmii.common.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
/**
* @author:zhoujh
* @Function:TODO
* @date 2021/5/7 14:42
* @ClassName:
* @version:
* @remark:
*/
@Service
@Slf4j
public class AttServiceImpl implements AttService {
@Value("${att.upload.docBase}")
private String ftpPath;
@Value("${att.upload.path}")
private String downLoad;
@Value("${web.upload.path}")
private String fileRootPath;
@Resource
private AttachmentInfoMapper infoMapper;
/**
* 下载ftp上文件到本地
* @return
*/
@Override
public ApiResponse downloadFile(MultipartFile[] files) {
// for (MultipartFile file:files) {
// FtpOperationUtils ftpOperationUtils = new FtpOperationUtils();
// try {
// String originalFilename = file.getOriginalFilename();
// InputStream inputStream = ftpOperationUtils.downloadFile(originalFilename);
// FileUtil.writeFromStream(inputStream, "D:\\a1.txt");
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
return null;
}
/**
* 上传文件到ftp
* @param files
* @return
*/
@Override
public ApiResponse uploadToFtp(MultipartFile[] files, String description, Long userId) {
log.info("-----uploadByFtp-----MultipartFile files长度--------"+files.length);
if(files==null){
return new ApiResponse(ApiResponse.FAIL,MessageEnum.FAIL_PARAM.getRemarks());
}else{
List<AttachmentInfoDto> attachList=new ArrayList<>();
String lastPath="";
LinkedList<String> newNameList = new LinkedList<String>();
LinkedList<InputStream> fileList = new LinkedList<InputStream>();
for (MultipartFile file : files) {
AttachmentInfoDto attachVo=new AttachmentInfoDto();
//获取上传的附件原名包括后缀
String realFileName=file.getOriginalFilename();
attachVo.setFileName(realFileName);
//获取后缀名,如.jpg.png
log.info("--------源文件名开始 realFileName--------"+realFileName);
String suffixes = realFileName.substring(realFileName.lastIndexOf("."));
List<String> extList = Arrays.asList(".jpg", ".png", ".jpeg", ".gif");
if (!extList.contains(suffixes)) {
return new ApiResponse(ApiResponse.FAIL, MessageEnum.FILE_PICTURE.getRemarks());
}
//图片名称重新命名包括后缀名
String newName = StringUtil.getRandomOrderNumber() + "_" + StringUtil.getRandomOrderNumberString() + suffixes;
// String newName= UUID.randomUUID().toString().replaceAll("\\-", "")+suffixes;
newNameList.add(newName);
try {
fileList.add(file.getInputStream());
} catch (IOException e) {
e.printStackTrace();
}
//存放图片的路径地址
StringBuilder sb = new StringBuilder(ftpPath).append("/");
String path = sb.toString();
lastPath=path;
// fileFtp.uploadFile(path,newName,file.getInputStream());
//文件服务器地址**********************************************
String filePath=path+newName;
//赋值附件数据存储的信息**********************************************
attachVo.setCreateDate(new Date());
attachVo.setCreateUser(userId);
attachVo.setUpdateDate(new Date());
attachVo.setUpdateUser(userId);
attachVo.setDelFlag(CommonEnum.USED.getCode());
attachVo.setDescription(description);
attachVo.setFilePath(filePath);
attachVo.setFileUrl(downLoad+"/"+newName);
attachList.add(attachVo);
}
//ftp上传
try {
FtpUtil fileFtp = new FtpUtil();
fileFtp.uploadArrFile(lastPath,newNameList,fileList);
} catch (Exception e) {
log.error("服务器上传附件异常----------",e);
e.printStackTrace();
}
//相关数据存储到数据库里
AttachmentInfoListDto infoListDto=new AttachmentInfoListDto();
infoListDto.setAttachmentInfoDtoList(attachList);
ApiResponse apiResponse = uploadByFtp(infoListDto);
return apiResponse;
}
}
@Override
public ApiResponse uploadByFtp(AttachmentInfoListDto attachmentInfoListDto) {
if (attachmentInfoListDto == null || attachmentInfoListDto.getAttachmentInfoDtoList()==null
||attachmentInfoListDto.getAttachmentInfoDtoList().size()<=0) {
return new ApiResponse(MessageEnum.FILE_DOWN_FAIL.getCode(), MessageEnum.FILE_DOWN_FAIL.getRemarks(), null);
}
List<EshopAttachmentInfoVo> infoVoList = new ArrayList<EshopAttachmentInfoVo>();
List<AttachmentInfoDto> attList=attachmentInfoListDto.getAttachmentInfoDtoList();
for (AttachmentInfoDto infoDto : attList) {
AttachmentInfoPO attachmentInfoPO = BeanTransferUtils.transfer(infoDto, AttachmentInfoPO.class);
attachmentInfoPO.setId(SnowFlakeUtil.nextId());
int add = infoMapper.insert(attachmentInfoPO);
if (add > 0) {
EshopAttachmentInfoVo addVo = new EshopAttachmentInfoVo();
addVo.setId(attachmentInfoPO.getId()+"");
addVo.setFileName(attachmentInfoPO.getFileName());
addVo.setFileUrl(attachmentInfoPO.getFileUrl());
infoVoList.add(addVo);
}
}
log.info("文件业务数据存储完毕 {}", System.currentTimeMillis());
return new ApiResponse(ApiResponse.SUCCESS,ApiResponse.SUCCESS_TEXT, infoVoList);
}
}
package org.nafmii.admin.att.service;
/**
* @author:zhoujh
* @Function:TODO
* @date 2021/5/7 14:41
* @ClassName:
* @version:
* @remark:
*/
public class test {
}
package org.nafmii.admin.att.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
*
* EshopAttachmentInfoVo对象.对应实体描述:公用附件表
*
*
*/
@Data
@ApiModel("EshopAttachmentInfoVo对象")
public class EshopAttachmentInfoVo implements Serializable {
private static final long serialVersionUID = 1L;
/** 对应字段:id,备注:附件id */
@ApiModelProperty("附件id")
private String id;
/** 对应字段:file_name,备注:源文件名称 */
@ApiModelProperty("源文件名称")
private String fileName;
/** 对应字段:file_url,备注:相对url */
@ApiModelProperty("相对url")
private String fileUrl;
/** 对应字段:file_path,备注:文件存储相对目录 */
@ApiModelProperty("文件存储相对目录")
private String filePath;
/** 对应字段:description,备注:描述 */
@ApiModelProperty("描述")
private String description;
/** 对应字段:del_flag,备注:软删除字段0未删除1已删除 */
@ApiModelProperty("软删除字段0未删除1已删除")
private Integer delFlag;
/** 对应字段:create_id,备注:创建人 */
@ApiModelProperty("创建人")
private Long createUser;
/** 对应字段:create_date,备注:创建时间 */
@ApiModelProperty("创建时间")
private Date createDate;
/** 对应字段:update_id,备注:修改时间 */
@ApiModelProperty("修改人")
private Long updateUser;
/** 对应字段:update_date,备注:修改时间 */
@ApiModelProperty("修改时间")
private Date updateDate;
/**
* 对应字段:page,备注:页码
*/
@ApiModelProperty("页码")
private int page;
/**
* 对应字段:limit,备注:每页数量
*/
@ApiModelProperty("每页数量")
private int limit;
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nafmii.admin.dao.AttachmentInfoMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="org.nafmii.admin.entity.AttachmentInfoPO">
<id column="ID" property="id" />
<result column="FILE_NAME" property="fileName" />
<result column="FILE_URL" property="fileUrl" />
<result column="FILE_PATH" property="filePath" />
<result column="DESCRIPTION" property="description" />
<result column="IS_ENABLE" property="isEnable" />
<result column="CREATE_USER_ID" property="createUserId" />
<result column="UPDATE_USER_ID" property="updateUserId" />
<result column="CREATE_TIME" property="createTime" />
<result column="UPDATE_TIME" property="updateTime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
ID, FILE_NAME, FILE_URL, FILE_PATH, DESCRIPTION, IS_ENABLE, CREATE_USER_ID, UPDATE_USER_ID, CREATE_TIME, UPDATE_TIME
</sql>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nafmii.admin.att.dao.BusinessAttachmentInfoMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="org.nafmii.admin.att.entity.BusinessAttachmentInfoPO">
<id column="ID" property="id" />
<result column="BUSINESS" property="business" />
<result column="BUSINESS_ID" property="businessId" />
<result column="ATTACHMENT_ID" property="attachmentId" />
<result column="CREATE_USER_ID" property="createUserId" />
<result column="UPDATE_USER_ID" property="updateUserId" />
<result column="CREATE_TIME" property="createTime" />
<result column="UPDATE_TIME" property="updateTime" />
<result column="SORT" property="sort" />
<result column="DESCRIPTION" property="description" />
<result column="IS_ENABLE" property="isEnable" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
ID, BUSINESS, BUSINESS_ID, ATTACHMENT_ID, CREATE_USER_ID, UPDATE_USER_ID, CREATE_TIME, UPDATE_TIME, SORT, DESCRIPTION, IS_ENABLE
</sql>
</mapper>
...@@ -12,21 +12,17 @@ import org.nafmii.app.user.service.UserService; ...@@ -12,21 +12,17 @@ import org.nafmii.app.user.service.UserService;
import org.nafmii.app.user.vo.UserAndRoleVo; import org.nafmii.app.user.vo.UserAndRoleVo;
import org.nafmii.app.user.vo.UserVO; import org.nafmii.app.user.vo.UserVO;
import org.nafmii.common.constant.HttpClientHeaderEnum; import org.nafmii.common.constant.HttpClientHeaderEnum;
import org.nafmii.common.exception.BusinessException;
import org.nafmii.common.param.BeanTransferUtils; import org.nafmii.common.param.BeanTransferUtils;
import org.nafmii.common.response.ApiResponse; import org.nafmii.common.response.ApiResponse;
import org.nafmii.common.utils.GuavaUtil;
import org.nafmii.common.utils.JwtUtils; import org.nafmii.common.utils.JwtUtils;
import org.nafmii.common.utils.SnowFlakeUtil; import org.nafmii.common.utils.SnowFlakeUtil;
import org.nafmii.common.constant.UserEnum; import org.nafmii.common.constant.UserEnum;
import org.nafmii.common.vo.UserJwtVO; import org.nafmii.common.constant.RedisEnum;
import org.nafmii.enums.RedisEnum;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
......
...@@ -37,7 +37,13 @@ ...@@ -37,7 +37,13 @@
<artifactId>springfox-swagger2</artifactId> <artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version> <version>2.8.0</version>
</dependency> </dependency>
<!--- ftp-->
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.3</version>
</dependency>
<!--- swagger-->
<dependency> <dependency>
<groupId>io.springfox</groupId> <groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId> <artifactId>springfox-swagger-ui</artifactId>
......
...@@ -19,6 +19,7 @@ public enum MessageEnum { ...@@ -19,6 +19,7 @@ public enum MessageEnum {
FILE_TYPE_ERROR(-110L, "文件类型不允许上传!"), FILE_TYPE_ERROR(-110L, "文件类型不允许上传!"),
FILE_UPLOAD_FAIL(-111L, "文件上传失败!"), FILE_UPLOAD_FAIL(-111L, "文件上传失败!"),
FILE_DOWN_FAIL(-112L, "文件不存在或已被删除!"), FILE_DOWN_FAIL(-112L, "文件不存在或已被删除!"),
FILE_PICTURE(-113L, "图片格式非法!"),
; ;
private Long code; private Long code;
......
package org.nafmii.enums; package org.nafmii.common.constant;
/** /**
* @author:zhoujh * @author:zhoujh
......
...@@ -28,6 +28,8 @@ public enum UserEnum{ ...@@ -28,6 +28,8 @@ public enum UserEnum{
LOGINPHONE("1","验证码"), LOGINPHONE("1","验证码"),
LOGINPWD("0","密码"), LOGINPWD("0","密码"),
; ;
UserEnum(String code, String name){ UserEnum(String code, String name){
......
...@@ -8,6 +8,10 @@ import org.nafmii.common.constant.HttpClientHeaderEnum; ...@@ -8,6 +8,10 @@ import org.nafmii.common.constant.HttpClientHeaderEnum;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
/**
* zjh
*/
@Slf4j @Slf4j
public class JwtUtils { public class JwtUtils {
public static final String TOKEN_HEADER = "Authorization"; public static final String TOKEN_HEADER = "Authorization";
......
#ftp地址-ftp请求。
ftp.host=127.0.0.1
#ftp端口号
ftp.port=21
#ftp请求的用户名
ftp.username=ftpUser2
#ftp请求的密码
ftp.password=ftpUser2
#ftp请求读取写入的文件路径
ftp.filepath=/data/ftp
\ No newline at end of file \ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!