FTP上传核心方法

来源:互联网 发布:传奇db数据库详解 编辑:程序博客网 时间:2024/06/01 09:06

核心处理FTP上传的方法

假如FTP不限制上传网速的话,基本能达到10M/s(局域网内)

/**      * 上传文件-FTP方式      * @param ftp FTPClient对象      * @param path FTP服务器上传地址      * @param filename 本地文件路径      * @param inputStream 输入流      * @return boolean      */      public boolean uploadFile(FTPClient ftp, String path, String fileName, InputStream inputStream) {          boolean success = false;          try {          if (!ftp.changeWorkingDirectory(path)) {// 如果不能进入dir下,说明此目录不存在!          FtpUtils.makeDirectory(path, ftp);            }          ftp.changeWorkingDirectory(path);                        FTPFile[] fs = ftp.listFiles();//得到目录的相应文件列表              fileName = FtpUtils.changeName(fileName, fs);              //转到指定上传目录              ftp.changeWorkingDirectory(path);              //将上传文件存储到指定目录              ftp.setFileType(FTP.BINARY_FILE_TYPE);            ftp.setBufferSize(1024*1024);            //如果缺省该句 传输txt正常 但图片和其他格式的文件传输出现乱码              BufferedInputStream bIs = new BufferedInputStream(inputStream);            ftp.storeFile(fileName, bIs);              //关闭输入流              inputStream.close();              //退出ftp              ftp.logout();              //表示上传成功              success = true;             logger.debug("上传成功。。。。。。");        } catch (Exception e) {         logger.error("文件上传失败:" + e.getMessage());            e.printStackTrace();          }          return success;      }  

 注意:以下代码是核心解决上传速度的

 ftp.setBufferSize(1024*1024);  BufferedInputStream bIs = new BufferedInputStream(inputStream);

 

0 0
原创粉丝点击