ftp服务器可以异地传文件吗,FTP图片上传到异地服务器
#region 创建文件夹 MakeFolder()
///
/// 创建文件夹
///
/// 例如:/newDir
/// ftp地址(可带目录)
/// ftp用户名
/// ftp密码
public void MakeFolder(string FolderName, string url, string userid, string password)
{
FtpWebRequest reqFTP;
try
{
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + url + FolderName));
reqFTP.Method = WebRequestMethods.Ftp.MakeDirectory;
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(userid, password);
FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
Stream ftpStream = response.GetResponseStream();
ftpStream.Close();
response.Close();
}
catch (Exception ex)
{
throw new Exception("此处是创建文件夹:"+ex.Message + "创建文件夹:ftp://" + url + FolderName + "不成功!");
}
}
///
/// 生成缩略图
///
/// 数据流
/// 缩略图路径(ftp相对路径)
/// 缩略图宽度
/// 缩略图高度
/// 生成缩略图的方式
public void MakeThumbnail(Stream stream, string thumbnailPath, int width, int height, string mode)
{
System.Drawing.Image originalImage = System.Drawing.Image.FromStream(stream);
int towidth = width;
int toheight = height;
int x = 0;
int y = 0;
int ow = originalImage.Width;
int oh = originalImage.Height;
switch (mode)
{
case "HW"://指定高宽缩放(可能变形)
break;
case "W"://指定宽,高按比例
toheight = originalImage.Height * width / originalImage.Width;
break;
case "H"://指定高,宽按比例
towidth = originalImage.Width * height / originalImage.Height;
break;
case "Cut"://指定高宽裁减(不变形)
if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)
{
oh = originalImage.Height;
ow = originalImage.Height * towidth / toheight;
y = 0;
x = (originalImage.Width - ow) / 2;
}
else
{
ow = originalImage.Width;
oh = originalImage.Width * height / towidth;
x = 0;
y = (originalImage.Height - oh) / 2;
}
break;
default:
break;
}
//新建一个bmp图片
System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);
//新建一个画板
Graphics g = System.Drawing.Graphics.FromImage(bitmap);
//设置高质量插值法
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
//设置高质量,低速度呈现平滑程度
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//清空画布并以透明背景色填充
g.Clear(Color.Transparent);
//在指定位置并且按指定大小绘制原图片的指定部分
g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight),
new Rectangle(x, y, ow, oh),
GraphicsUnit.Pixel);
try
{
MemoryStream temp = new MemoryStream();
bitmap.Save(temp, System.Drawing.Imaging.ImageFormat.Jpeg);
temp.Position = 0;
UploadFileByFTP(this.ftpHost, this.ftpUserId, this.ftpPwd, temp, thumbnailPath);
}
catch (System.Exception e)
{
throw new Exception("此处是生成缩略图:"+e.Message+"生成缩略图失败!");
}
finally
{
originalImage.Dispose();
bitmap.Dispose();
g.Dispose();
}
}
#region FTP上传文件方法,设定ftp下的保存路径,文件名 UploadFileByFTP()
///
/// FTP上传文件方法,设定ftp下的保存路径,文件名
///
/// ftp地址
/// ftp用户名
/// ftp密码
/// 上传文件流
/// 文件名(可带相对路径)
/// throw
protected void UploadFileByFTP(string ftpServerIP, string ftpUserID, string ftpPassword, Stream streamRead, string filename)
{
string l_notice = "";//上传提示
string uri = string.Empty;
//如果filename为空提示选择文件
if (filename == null || filename == "")
{
l_notice = "Please select File !";
}
else
{
try
{
if (filename.StartsWith("/"))
{
filename = filename.Remove(0, 1);
}
uri = "ftp://" + ftpServerIP + "/" + filename;
FtpWebRequest reqFTP;
// 根据uri创建FtpWebRequest对象
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
// ftp用户名和密码
reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
// 默认为true,连接不会被关闭
// 在一个命令之后被执行
reqFTP.KeepAlive = false;
// 指定执行命令
reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
// 指定数据传输类型
reqFTP.UseBinary = true;
// 上传文件时通知服务器文件的大小
reqFTP.ContentLength = streamRead.Length;
// 缓冲大小设置为5kb
int buffLength = 5048;
byte[] buff = new byte[buffLength];
int contentLen;
Stream streamWrite = reqFTP.GetRequestStream();
streamRead.Flush();
contentLen = streamRead.Read(buff, 0, buffLength);
while (contentLen != 0)
{
streamWrite.Write(buff, 0, contentLen);
contentLen = streamRead.Read(buff, 0, buffLength);
}
// 关闭两个流
streamWrite.Close();
}
catch (Exception ex)
{
throw new Exception("此处是上传方法:"+ex.Message + "ftp路径:" + uri);
}
}
Response.Write(l_notice);
}
ftp服务器可以异地传文件吗,FTP图片上传到异地服务器相关推荐
- 上传文件按钮美化,上传文件前后状态控制
我们在做input文本上传的时候,html自带的上传按钮比较丑,如何对其进行美化呢?同理:input checkbox美化,input radio美化是一个道理的. input file上传按钮的美化 ...
- 爬虫之上传文件,request如何上传文件
爬虫之上传文件,request如何上传文件,当我们遇到需要上传文件的接口时,如何破解上传文件的密码呢? 如图,文件的参数名files[],传输多张图片,那如何用python实现呢? 1.方法1:使用r ...
- nginx 限制文件上传速度_nginx上传文件速度慢 Nginx上传文件全部缓存解决方案 - 硬件设备 - 服务器之家...
nginx上传文件速度慢 Nginx上传文件全部缓存解决方案 发布时间:2017-03-09 来源:服务器之家 下面通过文字说明给大家详解Nginx上传文件全部缓存解决方案. 因为应用服务器(Jett ...
- 阿里云OSS上传文件时,如何显示上传网速
阿里云OSS上传文件时,如何显示上传网速 业务场景 用户上传时,网速很慢,或者在上传大文件时,虽然有进度条,但是动的很慢,或者不明显,用户会产生困惑. 所以就产生了一个显示网速的需求点. 实现方式 E ...
- gtp java 文件传输_5_1_图片上传
图片上传 一 需求 1 图片上传到本地: 2 图片上传到七牛云. 效果图: 二 具体代码实现 1 ToutiaoUtil.java: 用来判断上传的文件名是否合格: packagecom.nowcod ...
- php网站商品图片上传代码,PHP实现图片上传代码
html代码 Document 上传图片: up.php代码 if (!empty($_FILES["img"]["name"])) { // 提取文件域内容名 ...
- html 头像选择,html5点击上传头像选取本地图片上传代码
特效描述:html5 点击上传头像 选取本地图片 上传代码.html5点击上传头像,图片上传代码 代码结构 1. HTML代码 上传头像 //获取上传按钮 var input1 = document. ...
- php 上传加水印,php 图片上传加水印(自动增加水印)
function upload($uploadfile,$watermark=1,$watertype=1,$content){ foreach($uploadfile['name'] as $key ...
- 直播平台软件开发,input限制上传数量,规定图片上传数量
直播平台软件开发,input限制上传数量,规定图片上传数量 /*** [fileCountCheck 上传文件数量检测]* @param {[Object]} filesObj [文件对象|input ...
- java ftp上传文件0字节_FTP上传无文件以及0字节问题
这几天在做一个FTP上传文件的功能,在本地运行完全没有问题,上传文件成功,图片成功显示.在公网(centos系统)上进行测试的时候就出了问题了,上传一直卡到storeFile上,一般是会卡住30-60 ...
最新文章
- webpack打包路径更改_扫盲: Webpack 从扫盲到手撸(上)
- mysql主从复制的简单配置
- Win2008 远程时提示“要登录到此远程计算机,您必须被授予允许通过终端登录登录的权限“的解决方法
- vba移动文件_Excel VBA之FSO-2.3文件夹的移动
- spark streaming 的 Job创建、调度、提交
- 检查Python中是否存在文件
- java中添加背景_java中如何增加背景图片
- stm32双向可控硅调压程序_双向可控硅的工作原理
- 基于JAVA+Servlet+JSP+MYSQL的人力资源管理系统
- 拓端tecdat|R语言时间序列分解和异常检测方法应用案例
- Java-API:java.util.ArrayList
- [linux命令]基本命令
- SQL Server BI Step by step 1 AdventureWorks数据库的安装
- 常见的商业数据库系统
- 基于Paddlehub与Wechaty的微信小助手--懂懂
- 百度云安装mysql_mysql5.7 安装版本配置教程+百度云资源分享
- C#注册和注销全局快捷键
- apr 移植android平台,omap3530移植android4.0
- .obj 和 .mtl文件格式
- python对erp系统有帮助吗_ERP系统的优点