栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java实现跨服务器上传文件功能

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java实现跨服务器上传文件功能

前几天做个项目,本身客户端和管理员端是写在一起的,共用一台服务器,客户上传的文件都是存在服务器的硬盘上的。老龙提出要把客户端和管理员端分离,这时候用户上传的附件的存储就出现问题了。显然,把大到几百M的apk文件存到数据库不现实,查了半天,在两端建立ftp服务器传文件是最快的方法。

具体流程是,用户登录外网客户端,上传文件到外网的服务器硬盘上,在此同时,文件通过外网服务器访问内网管理员服务器的ftp服务器,传到内网服务器的硬盘上。这样内网服务器可以对上传的文件进行加密签名工作,之后也通过ftp的方式把文件回传到外网服务器硬盘上,供用户进行其他操作。

具体实现时用到的工具:Serv-U。Serv-U是一个方便我们在windows上建立ftp服务器的工具。下载破解后,按照步骤,设置好Ip、端口、账户密码、允许ftp访问的磁盘路径、操作权限等,就可以使用了。IP在本机测试的时候就选127.0.0.1,内网测试时就选192.168.0.x。

在java项目中的实现,我自己写了个工具类,用到了apache的commons-net包,有上传,下载以及删除功能。附上代码:

package app.ftp; 
 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 
 
import org.apache.commons.net.ftp.FTPClient; 
import org.apache.commons.net.ftp.FTPFile; 
import org.apache.commons.net.ftp.FTPReply; 
 
 
public class FTPUtils { 
   
   
  public static boolean storeFile (String url, int port, String userName, String password, String storePath, String fileName, InputStream is) { 
    boolean result = false; 
    FTPClient ftp = new FTPClient(); 
    try { 
      // 连接至服务器,端口默认为21时,可直接通过URL连接 
      ftp.connect(url ,port); 
      // 登录服务器 
      ftp.login(userName, password); 
      // 判断返回码是否合法 
      if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) { 
 // 不合法时断开连接 
 ftp.disconnect(); 
 // 结束程序 
 return result; 
      } 
      // 判断ftp目录是否存在,如果不存在则创建目录,包括创建多级目录 
      String s = "/"+storePath; 
      String[] dirs = s.split("/"); 
      ftp.changeWorkingDirectory("/");
 //按顺序检查目录是否存在,不存在则创建目录  
 for(int i=1; dirs!=null&&i

需要注意的是上传文件的时候要将File文件先放入fileinputstream中。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/142090.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号