此处远程服务器是ubuntu,关于ftpserver的配置请参考该文https://blog.csdn.net/sunxiaoju/article/details/85224602,在此处就不再赘述。该篇文章主要针对如何实现代码来进行代码干货的分享。

本小编用的前台为layui框架。话不多说直接上干货,代码没什么好解释的,直接贴出前后台代码以供大家分享使用。

一、html代码

                    <div class="layui-form-item"><label class="layui-form-label">上传附件:</label><div class="layui-input-block doc-litpic"><button type="button" name="avatar" class="layui-btn layui-btn-sm" data-url="/admin/archives/upload.html" id="larry-litpic"><i class="layui-icon"></i>本地上传</button><a id="upload-filename-display" style="color: blue" href=""></a><div class="larryms-img-view"></div></div></div>

二、js代码

        upload.render({accept: 'file',elem: '#larry-litpic',url: interface_cms_article_upload,field: 'fileNames',done : function (res, index, upload) {if(res.code != 200){layer.open({icon : 2,skin : "layui-layer-molv",content : res.msg});}else{layer.open({icon : 1,skin : "layui-layer-molv",content : res.msg});$('#upload-filename-display').text(res.filename);$("input[name='fileId']").val(res.filename);}},error : function (res) {}});

三、后台controller:

    @RequestMapping(value = "/upload")@ApiOperation(value = "本地文件上传",notes ="本地文件上传" )public Map uploadfunction(HttpServletRequest request, HttpServletResponse response){//创建文件对象并获取请求中的文件对象MultipartFile file = null;Map resultData = new HashMap();try{MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;file = mRequest.getFile("fileNames");//判断上传非空if(null == file) {resultData.put("code",0);resultData.put("msg","上传文件失败");resultData.put("filename",file.getOriginalFilename());return resultData;}//上传需要导入数据的文件//用来检测程序运行时间long  startTime=System.currentTimeMillis();System.out.println("上传的文件名为:"+file.getOriginalFilename());String fileName = file.getOriginalFilename();InputStream inputStream = file.getInputStream();String hostName = uploadUtil.getHostname();String username = uploadUtil.getUsername();String password = uploadUtil.getPassword();String targetPath = uploadUtil.getTargetPath();String suffix = cmsArticleService.getSuffix(fileName);fileName = cmsArticleService.upload(hostName,username,password,targetPath,suffix,inputStream);//计算上传时间long  endTime=System.currentTimeMillis();String uploadTime = String.valueOf(endTime-startTime);System.out.println("上传所用时间:"+uploadTime+"ms");resultData.put("code",200);resultData.put("msg","上传文件成功");resultData.put("filename",fileName);return resultData;} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}

四、后台service上传至远程服务器

    //FTP文件上传public static String upload(String hostname,String username,String password,String targetPath,String suffix,InputStream inputStream) throws SocketException, IOException {//实例化ftpClientFTPClient ftpClient = new FTPClient();//设置登陆超时时间,默认是20sftpClient.setDataTimeout(12000);//1.连接服务器ftpClient.connect(hostname,21);//2.登录(指定用户名和密码)boolean b = ftpClient.login(username,password);if(!b) {System.out.println("登陸超時");if (ftpClient.isConnected()) {// 断开连接ftpClient.disconnect();}}// 设置字符编码ftpClient.setControlEncoding("UTF-8");//基本路径,一定存在String basePath="/";String[] pathArray = targetPath.split("/");for(String path:pathArray){basePath+=path+"/";//3.指定目录 返回布尔类型 true表示该目录存在boolean dirExsists = ftpClient.changeWorkingDirectory(basePath);//4.如果指定的目录不存在,则创建目录if(!dirExsists){//此方式,每次,只能创建一级目录boolean flag=ftpClient.makeDirectory(basePath);if (flag){System.out.println("创建成功!");}}}//重新指定上传文件的路径ftpClient.changeWorkingDirectory(targetPath);//5.设置上传文件的方式ftpClient.setFileType(FTP.BINARY_FILE_TYPE);//使用uuid,保存文件名唯一性String uuid= UUID.randomUUID().toString();/*** 6.执行上传* remote 上传服务后,文件的名称* local 文件输入流* 上传文件时,如果已经存在同名文件,会被覆盖*/boolean uploadFlag = ftpClient.storeFile(uuid+suffix,inputStream);if(uploadFlag)System.out.println("上传成功!");return uuid+suffix;}

五、获取yml配置的工具类

@Data
@Component
public class UploadUtil {@Value("${upload.hostname}")private String hostname;@Value("${upload.username}")private String username;@Value("${upload.password}")private String password;@Value("${upload.targetPath}")private String targetPath;
}

springboot以FTP方式上传文件到远程服务器相关推荐

  1. Ftp实现上传文件至远程服务器

    服务器安装FTP服务 1.安装vsftpd yum -y install vsftpd 2.关闭匿名访问 vim /etc/vsftpd/vsftpd.conf 将anonymous_enable的值 ...

  2. java上传文件到远程服务器(一)---HttpURLConnection方式

    我们在之前的文章 JavaWeb静态资源分离思路 中已经了解到要把文件上传到静态资源服务器有三种方式: java上传文件到ftp服务器(这个方案需要在静态资源服务器安装ftp服务) java使用Htt ...

  3. 文件怎么上传远程服务器,怎么上传文件到远程服务器

    怎么上传文件到远程服务器 内容精选 换一换 将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式.本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows云服 ...

  4. 向服务器上传文件的命令,上传文件到远程服务器的命令

    上传文件到远程服务器的命令 内容精选 换一换 将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式.本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows云 ...

  5. Git上传本地文件到服务器,git上传文件到远程服务器

    git上传文件到远程服务器 内容精选 换一换 将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式.本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows云 ...

  6. 上传文件到服务器指令,上传文件到远程服务器的命令

    上传文件到远程服务器的命令 内容精选 换一换 将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式.本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows云 ...

  7. Mac上传文件到远程服务器

    Mac上传文件到远程服务器,可以利用mac自带的终端来进行上传,使用sftp方式 终端shell菜单-> 新建远程连接 sftp方式,输入远程服务器ip 3. 然后连接,连的时候会让输入密码,输 ...

  8. (三)使用xftp上传文件到远程服务器

    一.下载与安装 百度云下载链接 xftp 6永久免费版下载 链接:https://pan.baidu.com/s/14sPdEcEP6rdhhr09jcEZcw 提取码:mwee 如果上述链接失效,可 ...

  9. java 实现上传文件到远程服务器

    阿里云低价服务器1折特惠,优惠爽翻天,点我立即低价购买 import java.io.DataOutputStream; import java.io.File; import java.io.Fil ...

最新文章

  1. UVA 10041 Vito's Family
  2. DELL IDRAC9配置RAID
  3. VUE el-input正则验证
  4. Python学习笔记:虚拟环境和包
  5. 2009最后一天,为了期盼而祝福
  6. python之递归函数和内建函数
  7. 3.过滤数据 ---SQL
  8. pcb板材的tg是什么_做到这6点,PCB过回焊炉不会出现板弯及板翘!
  9. pmp知识点详解-项目大牛整理_PMP核心知识点—第四章:项目整合管理(一)
  10. FTP协议、电子邮件系统、Telnet远程控制
  11. intellij mysql jdbc_intellij idea java项目中通过JDBC链接mysql
  12. 链表中倒数第 k 个节点
  13. POJ NOI0105-36 计算多项式的值
  14. android贪吃蛇设计报告,基于android的贪吃蛇游戏设计与开发
  15. 计算机控制系统——数字控制器设计之模拟控制器的离散化(Chapter 5)
  16. 【服务器】本地运行成功,但服务器上运行却显示错误500
  17. python_循环语句for_1.12
  18. 按键精灵读取github page 网页,实现脚本远程控制功能
  19. 产品vs程序员:你知道www是怎么来的吗?
  20. 学历证书有用吗?到了社会才知道

热门文章

  1. C#访问网页、保存网页
  2. $().each和$.each()
  3. 小米再次回购股票:斥资近1亿港元 传递市场信心
  4. 计算机主机如何睡眠,电脑如何设置睡眠
  5. linux usleep占用cpu,c-Cent OS 6.3上的usleep的CPU高使用率
  6. linux查看进程线程的方法
  7. 沙特阿拉伯重新开放对于持有美国、英国和申根签证旅行者落地签
  8. 做一个九宫格诗词答题小程序 (二)倒计时功能实现
  9. Icon是什么,在线实现图片转Icon的方法
  10. Vue ElementUI el-tree 修改节点收缩 icon