读取FTP 图片文件,并显示,非下载
关于FTP,先从怎么创建开始说起,很简单,步骤就两个
① 电脑-右键管理--本地用户组--添加用户名,密码(用于FTP的用户名、密码)
② IIS 新建FTP站点,命名,指定端口号、FTP文件路径
接下来就是进行访问,网上有很多的FTP 帮助类,关于上传、下载,重命名、获取文件列表之类的方法。就不在赘述,这里主要讲下怎么获取图片,直接显示,而不必下载到本地。毕竟我这里的需求场景是实时刷新图片,不可能每个客户端都将摄像头识别到的目标图片下载到本地。其实当我们客户端在加载FTP文件的时候,就已经在执行下载的操作了,只是先将文件加载(下载)到内存中。如果要保存到本地,就指定一个物理路径,将加载到文件保存到该路径上即可(这一点查看FTP帮助类即可发现)。
下面我们要在客户端上显示该图片,首先最简单的方法便是,拼接图片路径,给picturebox 控件赋值
//如果FTP站点指定路径为 D:\Images\list,图片的路径为 D:\Images\list\A\20181024\xx.jpg
//则 imgPath 为 A\20181024
//imgPath 图片所在的FTP路径(不包含图片名)
//imgName 图片名
//连接服务器FTP
var url = string.Format("ftp://{0}:{1}@{2}/{3}/{4}", "fan", "", "192.168.0.101:2048", Path, imgName);
//直接赋值
pb_img.LoadAsync(url);
这种方法确实比较简单,但是有一个缺点,就是在频繁点击图片(加载大图图片)的时候,有时候程序会失去响应(并导致大图图片无法显示)。所以如果是单单显示图片,没有进一步的后续操作时,可以直接采用这种方法。此外还有一种方法,就是在内存中下载FTP图片,然后将其用byte字节数组加载出来,再用MemoryStream内存流包裹,最后将该流转换为图片。赋值并显示
//该路径为 ftp完整路径 带用户名,密码,端口号,图片路径,图片名,参考上一种方法中介绍
public static Image ReadImg(string ftpImgpath)
{
try
{
byte[] buffer = new WebClient().DownloadData(ftpImgpath);
//byte[] 转内存流
MemoryStream ms = new MemoryStream(buffer);
Image img = Image.FromStream(ms, true);
//流用完要及时关闭
ms.Close();
return img;
}
catch (Exception)
{
//转换失败,显示默认图
var path = System.Windows.Forms.Application.StartupPath;
var ary = path.Substring(, path.IndexOf("bin"));
var imgpath = ary + "\\img\\notfount.jpg";
PictureBox pb = new PictureBox();
pb.ImageLocation = imgpath;
return pb.Image;
} }
这种方法比较稳妥,暴力点击多次暂未发现啥异常。
读取FTP 图片文件,并显示,非下载的更多相关文章
- FileReader:读取本地图片文件并显示
最近忙得比狗还惨,导致长时间没能更新文章,真心对不住啊.抽空整理了下关于在页面上读取和显示本地图片的实例文章,本文通过实例讲解如何使用支持FileReader浏览器的用户将能够通过一个file inp ...
- 【ABAP系列】SAP ABAP 实现FTP的文件上传与下载
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 实现FTP的文 ...
- [转]opengl入门例题(读取bmp图片,并显示)
#include<gl/glut.h> #define FileName "bliss.bmp" static GLint imagewidth; static GLi ...
- paip.解决中文url路径的问题图片文件不能显示
paip.解决中文url路径的问题图片文件不能显示 #现状..中文url路径 图片文件不能显示 <img src="img/QQ截图20140401175433.jpg" w ...
- 解决“用PicGo-2.3.0-beta5 + GitHub做博客图床,github仓库图片文件不显示”的问题记录(备忘)
解决"用PicGo-2.3.0-beta5 + GitHub做博客图床,github仓库图片文件不显示"的问题记录(备忘) 历时几个小时百度,终于靠自己理解解决了GitHub仓库图 ...
- android 读取本地json文件 解决显示乱码显示
1.读取本地JSON ,但是显示汉字乱码 public static String readLocalJson(Context context, String fileName){ ...
- jdbc读取数据库图片文件
package 读取大文件.read; import java.io.BufferedReader; import java.io.FileOutputStream; import java.io.I ...
- 记crt 在windows与linux服务器之间利用ftp进行文件的上传下载
我们首先来熟悉一些相关的命令以及操作: ls #展示linux服务器当前工作目录[你连接sftp时所处的目录]下的所有文件以及文件夹 lcd F:\niki #绑定你在windo ...
- vue使用axios读取本地json文件来显示echarts折线图
编辑器:HBuilderx axios文档:http://www.axios-js.com/zh-cn/docs/ echarts实例:https://echarts.apache.org/examp ...
随机推荐
- Urozero Autumn 2016. BAPC 2016
A. Airport Logistics 根据光路最快原理以及斯涅尔定律,可以得到从定点$P$进入某条直线的最佳入射角. 求出每个端点到每条线段的最佳点,建图求最短路即可. 时间复杂度$O(n^2\l ...
- Restful概念的理解和践行
在实习是leader有让我们实习生看restful相关的知识,奈何当初根基很浅,看了一篇博文,但是还是很难用自己的话来描述.现在又接触了Restful的内容,就补上一篇文章. 在Spring Fram ...
- C#基础概念总结
C#基础概念总结 1..NET Framework概念 2. C#的含义: 3.什么是面向对象编程: 4.Visual Studio开发工具: 5..NET程序运行的机制: 1..Net Framew ...
- 在利用node连接数据库遇到的问题
本文持续更新 选择数据库时: connection.query('USE ' + dbName,function(err,rows){ //注意USE后面需要加一个空格,最终才能拼成> USE ...
- 记一次FileZillaServer提权
前段时间检测一个企业网站,在检测该企业的一个下属公司的网站时通过用户名admin和密码123456进入了后台,后台目录就是公司汉语拼音+admin,诸如xxxadmin这种形式的.在后台通过“产品图片 ...
- Linux命令 file
查看文件类型:
- jquery $.ajax({});参数详解
用到过的: type:请求方式,默认 GET: url:请求路径: data:请求参数,类型是String:JSON.stringify({"name":tom,"age ...
- uc/os iii移植到STM32F4---IAR开发环境
也许是先入为主的原因,时钟用不惯Keil环境,大多数的教程都是拿keil写的,尝试将官方的uc/os iii 移植到IAR环境. 1.首先尝试从官网上下载的官方移植的代码,编译通过,但是执行会报堆栈溢 ...
- String工具类2
1:比较字符串 public static void main(String[] args) { // String去创建对象有多种方式 // 方式1 直接字面值赋值 String s = " ...
- shell 爬取图片下载到本地
#!/bin/bash #ddmm // #if [ -z $string ] 如果string 为空 #-z STRING the length of STRING is zero read -p ...