1.先打开Linix 打开终端

输入
[root@localhost 桌面]# cd …/
[root@localhost ~]# cd …/
[root@localhost /]# cd usr
[root@localhost usr]# ls
bin etc games include lib libexec local sbin share src tmp
[root@localhost usr]# cd local
[root@localhost local]# ls
bin etc games include lib libexec nginx sbin share src Trolltech
[root@localhost local]# cd nginx
[root@localhost nginx]# ls
client_body_temp fastcgi_temp logs sbin uwsgi_temp
conf html proxy_temp scgi_temp
[root@localhost nginx]# cd sbin
[root@localhost sbin]# ls
nginx
[root@localhost sbin]# ls
nginx
[root@localhost sbin]# ./nginx
[root@localhost sbin]#

2.获取网页Ip地址
[root@localhost 桌面]# cd …/
[root@localhost ~]# cd…/
bash: cd…/: 没有那个文件或目录
[root@localhost ~]# ifconfig
eth1 Link encap:Ethernet HWaddr 00:0C:29:E1:BE:25
inet addr:192.168.230.128 Bcast:192.168.230.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fee1:be25/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:27 errors:0 dropped:0 overruns:0 frame:0
TX packets:41 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3067 (2.9 KiB) TX bytes:5999 (5.8 KiB)
Interrupt:19 Base address:0x2024

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:48 errors:0 dropped:0 overruns:0 frame:0
TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3238 (3.1 KiB) TX bytes:3238 (3.1 KiB)

[root@localhost ~]# ^C
[root@localhost ~]#

3.在网页输入192.168.230.128

说明成功了链接

在分布式上传有两种方法

第一种方法(原生):
foreknow-manager-web 里创建一个包 Junit test case类型 com.foreknow.test 类名TestFTP.java

package com.foreknow.test;import static org.junit.Assert.*;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.SocketException;import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.junit.Test;import com.foreknow.common.util.FtpUtil;public class TestFTP {@Testpublic void testFTP() {try {//创建FTPClinent对象FTPClient ftpClient=new FTPClient();//建立链接ftpClient.connect("192.168.230.128");//登录   参数 是 账号的密码neusoft,123ftpClient.login("ftpuser", "输入你的密码");//上传到远程服务器的路径ftpClient.changeWorkingDirectory("/home/ftpuser/www/images");//读取图片的文件   本地如果参数file 没有的话  自动创建FileInputStream inputStream=new FileInputStream(new File("D:\\pic.............................................常用\\maxresdefault.jpg"));//设置文件的格式(否则图片会花掉的)FTP.BINARY_FILE_TYPE  是个常亮  二进制ftpClient.setFileType(FTP.BINARY_FILE_TYPE);//上传文件   一个远程  一个本地的参数  远程的随便起ftpClient.storeFile("banner_demo.jpg", inputStream);//上面的IO流   就要释放资源   关闭资源inputStream.close();//退出登录ftpClient.logout();} catch (SocketException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}//第二种方法 调用 工具包FtpUtil@Testpublic void testFTPUtil() throws FileNotFoundException{FileInputStream inputStream=new FileInputStream(new File("D:\\pic.............................................常用\\maxresdefault.jpg"));FtpUtil.uploadFile("192.168.230.128", 21, "ftpuser", "sunyong0305", "/home/ftpuser/www/images", "/2019/1/1", "hello333", inputStream);}
}

右键方法名 在FTP软件是查看

第二种方法(使用工具包):

在foreknow-common 下 建包com.foreknow.common.util

FtpUtil.java

package com.foreknow.common.util;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.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;/*** ftp上传下载工具类*/
public class FtpUtil {/** * Description: 向FTP服务器上传文件 * @param host FTP服务器hostname * @param port FTP服务器端口 * @param username FTP登录账号 * @param password FTP登录密码 * @param basePath FTP服务器基础目录* @param filePath FTP服务器文件存放路径。例如分日期存放:/2015/01/01。文件的路径为basePath+filePath* @param filename 上传到FTP服务器上的文件名 * @param input 输入流 * @return 成功返回true,否则返回false */  public static boolean uploadFile(String host, int port, String username, String password, String basePath,String filePath, String filename, InputStream input) {boolean result = false;FTPClient ftp = new FTPClient();try {int reply;ftp.connect(host, port);// 连接FTP服务器// 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器ftp.login(username, password);// 登录reply = ftp.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {ftp.disconnect();return result;}//切换到上传目录if (!ftp.changeWorkingDirectory(basePath+filePath)) {//如果目录不存在创建目录String[] dirs = filePath.split("/");String tempPath = basePath;for (String dir : dirs) {if (null == dir || "".equals(dir)) continue;tempPath += "/" + dir;if (!ftp.changeWorkingDirectory(tempPath)) {if (!ftp.makeDirectory(tempPath)) {return result;} else {ftp.changeWorkingDirectory(tempPath);}}}}//设置上传文件的类型为二进制类型ftp.setFileType(FTP.BINARY_FILE_TYPE);//上传文件if (!ftp.storeFile(filename, input)) {return result;}input.close();ftp.logout();result = true;} catch (IOException e) {e.printStackTrace();} finally {if (ftp.isConnected()) {try {ftp.disconnect();} catch (IOException ioe) {}}}return result;}/** * Description: 从FTP服务器下载文件 * @param host FTP服务器hostname * @param port FTP服务器端口 * @param username FTP登录账号 * @param password FTP登录密码 * @param remotePath FTP服务器上的相对路径 * @param fileName 要下载的文件名 * @param localPath 下载后保存到本地的路径 * @return */  public static boolean downloadFile(String host, int port, String username, String password, String remotePath,String fileName, String localPath) {boolean result = false;FTPClient ftp = new FTPClient();try {int reply;ftp.connect(host, port);// 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器ftp.login(username, password);// 登录reply = ftp.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {ftp.disconnect();return result;}ftp.changeWorkingDirectory(remotePath);// 转移到FTP服务器目录FTPFile[] fs = ftp.listFiles();for (FTPFile ff : fs) {if (ff.getName().equals(fileName)) {File localFile = new File(localPath + "/" + ff.getName());OutputStream is = new FileOutputStream(localFile);ftp.retrieveFile(ff.getName(), is);is.close();}}ftp.logout();result = true;} catch (IOException e) {e.printStackTrace();} finally {if (ftp.isConnected()) {try {ftp.disconnect();} catch (IOException ioe) {}}}return result;}}

IDUtils.java

package com.foreknow.common.util;import java.util.Random;/*** 各种id生成策略*/
public class IDUtils {/*** 图片名生成*/public static String genImageName() {//取当前时间的长整形值包含毫秒long millis = System.currentTimeMillis();//long millis = System.nanoTime();//加上三位随机数Random random = new Random();int end3 = random.nextInt(999);//如果不足三位前面补0String str = millis + String.format("%03d", end3);return str;}/*** 商品id生成*/public static long genItemId() {//取当前时间的长整形值包含毫秒long millis = System.currentTimeMillis();//long millis = System.nanoTime();//加上两位随机数Random random = new Random();int end2 = random.nextInt(99);//如果不足两位前面补0String str = millis + String.format("%02d", end2);long id = new Long(str);return id;}public static void main(String[] args) {for(int i=0;i< 100;i++)System.out.println(genItemId());}
}

JsonUtils.java

package com.foreknow.common.util;import java.util.List;import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;/*** 商城自定义响应结构*/
public class JsonUtils {// 定义jackson对象private static final ObjectMapper MAPPER = new ObjectMapper();/*** 将对象转换成json字符串。* <p>Title: pojoToJson</p>* <p>Description: </p>* @param data* @return*/public static String objectToJson(Object data) {try {String string = MAPPER.writeValueAsString(data);return string;} catch (JsonProcessingException e) {e.printStackTrace();}return null;}/*** 将json结果集转化为对象* * @param jsonData json数据* @param clazz 对象中的object类型* @return*/public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {try {T t = MAPPER.readValue(jsonData, beanType);return t;} catch (Exception e) {e.printStackTrace();}return null;}/*** 将json数据转换成pojo对象list* <p>Title: jsonToList</p>* <p>Description: </p>* @param jsonData* @param beanType* @return*/public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);try {List<T> list = MAPPER.readValue(jsonData, javaType);return list;} catch (Exception e) {e.printStackTrace();}return null;}}

在test 中 调用工具包
//第二种方法 调用 工具包FtpUtil

    @Testpublic void testFTPUtil() throws FileNotFoundException{FileInputStream inputStream=new FileInputStream(new File("D:\\pic.............................................常用\\maxresdefault.jpg"));FtpUtil.uploadFile("192.168.230.128", 21, "ftpuser", "sunyong0305", "/home/ftpuser/www/images", "/2019/1/1", "hello333", inputStream);}
}

在FTP软件查看

在网页上测试:

输入:http://192.168.230.128/2019/1/1/hello333.jpg
如果有图 说明图片已经上传成功

通过分布式把本地图片上传到FTP(1)相关推荐

  1. kindeditor java 上传图片_java中KindEditor本地图片上传与上传失败问题

    此代码是最新版的 KindEditor 3.5.x 实现本地图片上传的方法,用于oschina即将改版的个人空间 KindEditor 要求的JSON格式如下: {"error": ...

  2. JS兼容各个浏览器的本地图片上传即时预览效果

    JS兼容各个浏览器的本地图片上传即时预览效果 很早以前 在工作曾经碰到这么一个需求,当时也是纠结了很久,也是google了很久,没有碰到合适的demo,今天特意研究了下这方面的的问题,所以也就做了个简 ...

  3. Typora本地图片上传

    Typora本地图片上传 方法一:使用有道云笔记(我用不了...) 根据在网上看到的一些方法,他们说可以用有道云笔记上传 图片后粘贴地址实现本地图片的上传. 步骤如下: 打开有道云笔记网页版 点击&q ...

  4. Gitee+typora+picgo+插件,markdown图床配置,一键将markdown中本地图片上传至图床

    一键将markdown中本地图片上传至图床 推荐配置:Gitee+typora+picgo+插件 文章目录 安装 picgo 配置 typora 配置 Gitee 图床 配置图床设置 配置 typor ...

  5. 本地图片上传与H5适配知识

    最近用到本地图片上传作为API的参数,在网上看了许多,记录一下,以后可能用的着(仅自己记录用,看不清请绕路) function getObjectURL(file) { var url = null ...

  6. html 头像选择,html5点击上传头像选取本地图片上传代码

    特效描述:html5 点击上传头像 选取本地图片 上传代码.html5点击上传头像,图片上传代码 代码结构 1. HTML代码 上传头像 //获取上传按钮 var input1 = document. ...

  7. 将图片上传到FTP服务器

    [FTP服务器] 介绍一个     ftp客户端工具:iis7服务器管理工具 IIs7服务器管理工具可以批量管理ftp站点,同时具备定时上传下载的功能. 作为服务器集成管理器,它最优秀的功能就是批量管 ...

  8. java用itextPDF生成PDF文件保存至本地并上传至ftp服务器

    标题java用itextPDF生成PDF文件保存至本地并上传至ftp服务器 所需jar :itext-asian-5.2.0.jar,itextpdf-5.5.5.jar,commons-net-3. ...

  9. TinyMCE 新增本地图片上传功能

    TinyMCE 新增本地图片上传功能 在TinyMCE 在处理富文本时,可以通过网站的相对路径录入图片地址.这样TinyMCE 就可以正常显示图片了.其实该功能属于普通HTML富文本控件基本功能了.现 ...

最新文章

  1. OC 消息转发实现多继承
  2. BZOJ4754 JSOI2016独特的树叶(哈希)
  3. android布局翻译,android – 使用翻译动画将视图从一个布局转换为另一个布局
  4. oracle中时间加减一年的写法
  5. webpack打包ES6降级ES5
  6. sql 关联使用id还是code_R语言实例:用glue批量生成SQL语句
  7. Log4j漏洞?一行代码都不改就能永久修复?
  8. Android音视频从入门到提高---任务列表
  9. Atitit datatype 数据类型 目录 第一章 三大基本类型 数字 字符串 bool 1 第二章 基本类型vs引用类型 1 字符串类型 2 第三章 符合类型vs 简单类型 2 特殊类型
  10. Rest-assured框架详解
  11. An error occurred.
  12. 模电笔记7 多级放大电路的耦合方式及其优缺点和适用电路
  13. 文献调研(九):基于rough set理论和深度学习算法的建筑能耗预测模型
  14. 点击按钮,下载二维码图片
  15. 排序算法——冒泡排序(图解+代码)
  16. 【讲座笔记】科研论文的构思、规划和写作--中南大帅词俊
  17. android系统语言切换及系统烧写默认语言设置
  18. android入门实例!一线互联网移动架构师NDK模块开发!看这一篇就够了!
  19. 任天堂战略聚焦与取舍学习笔记
  20. java 教师工资管理系统_java教师工资管理系统完整代码.doc

热门文章

  1. 给出年、月、日,计算该日是该年的第几天
  2. 什么情况下需要搭建大数据平台
  3. 建筑学公务员要求计算机二级,在我国,建筑学作为一级学科包括四个二级学科,其中两个是建筑设计及其理论、建筑历史与理论,另外两个是(  )。...
  4. javaweb 获取服务器整个文件夹下的文件_详细得不要不要的 JavaWeb快速入门,值得收藏!...
  5. java三星题之_JAVA三星题之playing a TicTacToe game
  6. AcWing 1132. 农场派对(最短路反向建边)
  7. 开放计算机应用基础形考3,国家开放大学《计算机应用基础》考试与答案形考任务模块3 模块3 Excel 2010 电子表格系统—客观题答案.doc...
  8. iis php5.3 mysql_IIS7.5+PHP5.3+MYSQL5.5
  9. linux ubuntu系统安装dotnet / Azcopy
  10. LSH︱python实现局部敏感哈希——LSHash(二)