ASP.NET中调用cmd命令传输文件到FTP

.NET Core FTP发布9大陷阱与解决方案 FTP文件传输协议作为经典的文件发布方式,在现代化开发中仍广泛用于遗留系统维护和特定场景部署。其核心原理通过控制通道和独立数据通道实现文件传输,在.NET Core跨平台环境中面临编码处理、文件锁定等特殊挑战。针对企业级部署场景,正确处理文件权限继承、二进制传输模式等细节可显著提升发布可靠性。本文基于真实故障案例,重点解析医疗、金融等行业在.NET Core FTP发布中遇到的进程占用、符号链接处理等典型问题,提供包含连接池优化、MSBuild集成在内的工程实践方案,帮助开发者规避90%的常见发布故障。 阅读详情

ftp
open 10.89.53.231 22
bqc\robbie.zhu
!xxxx
cd /FtpTest/T1
put D:\Project\MsProject\欧尚V3.6\实现3.6P1版本\PresentationLayer\ePayroll\SOBFiles\IEF001EHR001361.dat
quit
exit

public bool UploadFileToFTPByCmd(string fileFullName)
		{
			string _strFtpIP = ConfigurationSettings.AppSettings["FTPSettingIP"].ToString().Trim();
			string _strFtpPort = ConfigurationSettings.AppSettings["FTPSettingPort"].ToString().Trim();
			string _strFtpUserName = ConfigurationSettings.AppSettings["FTPSettingUserName"].ToString().Trim();
			string _strFtpPassword = ConfigurationSettings.AppSettings["FTPSettingPassrword"].ToString().Trim();
			string _strFtpFoloderPath = ConfigurationSettings.AppSettings["FTPSettingFolderPath"].ToString().Trim();

			if(!File.Exists(fileFullName))
			{
				base.ShowAlert("文件未生成成功,请检查!");
				return false;
			}
			else
			{
				FileStream fs = null;
				string _strScriptFolderPath = Path.GetDirectoryName(fileFullName) + "\\FtpScript"; 
				if(!Directory.Exists(_strScriptFolderPath))
				{
					Directory.CreateDirectory(_strScriptFolderPath);
				}
				
				string _strScriptFilePath = _strScriptFolderPath + @"\FtpScript" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".txt";
				if(File.Exists(_strScriptFilePath))
				{
					fs = new FileStream(_strScriptFilePath,FileMode.Append);
				}
				else
				{
					fs = new FileStream(_strScriptFilePath,FileMode.Create);
				}
				
				//ftp示例文件内容
				//open 10.89.53.231 22
				//bqc\robbie.zhu
				//!free12345
				//cd FtpTest
				//put d:\06.txt
				//quit
				//exit
				string _strOpenFtpUrl = "open " + _strFtpIP + " " + _strFtpPort;
				string _strCdFtpFolderPath = "cd " + _strFtpFoloderPath;
				string _strPutFile = "put " + fileFullName;
				StreamWriter sw = new StreamWriter(fs,Encoding.GetEncoding("GB2312"));
				sw.WriteLine("ftp");
				sw.WriteLine(_strOpenFtpUrl);
				sw.WriteLine(_strFtpUserName);
				sw.WriteLine(_strFtpPassword);
				sw.WriteLine(_strCdFtpFolderPath);
				sw.WriteLine(_strPutFile);
				sw.WriteLine("quit");
				sw.WriteLine("exit");
				sw.Close();

				string _strCommand = @"FTP -v -i -s:" + _strScriptFilePath;
				string _strReturnValue = DosOperation.RunCmd(_strCommand);
				if(_strReturnValue.ToUpper().IndexOf("TRANSFER COMPLETE")<0)
				{
					base.ShowAlert("Ftp抛转失败,请检查!");
					return false;
				}
			}
			return true;

		}

public class DosOperation
	{
		public DosOperation()
		{
			//
			// TODO: Add constructor logic here
			//
		}
		
		public static string RunCmd(string command)   
		{   
			Process p = null;
            try
            {
				//实例一个Process类,启动一个独立进程   
				p = new Process();   
  
				//Process类有一个StartInfo属性,这个是ProcessStartInfo类,包括了一些属性和方法,下面我们用到了他的几个属性:   
  
				p.StartInfo.FileName = "cmd.exe";           //设定程序名   
				p.StartInfo.Arguments = "/c " + command;    //设定程式执行参数   
				p.StartInfo.UseShellExecute = false;        //关闭Shell的使用   
				p.StartInfo.RedirectStandardInput = true;   //重定向标准输入   
				p.StartInfo.RedirectStandardOutput = true;  //重定向标准输出   
				p.StartInfo.RedirectStandardError = true;   //重定向错误输出   
				p.StartInfo.CreateNoWindow = true;          //设置不显示窗口 

                p.Start();   //启动   
                p.StandardInput.WriteLine("exit");        //不过要记得加上Exit要不然下一行程式执行的时候会当机   
                return p.StandardOutput.ReadToEnd();        //从输出流取得命令执行结果   
            }
            catch (Exception ex)
            {
                throw ex;
            }
			finally
			{
				if (p != null)
					p.Close();
			}
		}   
	}




Windows 10/11局域网文件共享:5分钟搞定FTP服务器搭建(含防火墙设置) 本文详细介绍了在Windows 10/11系统上快速搭建局域网FTP服务器的方法,包括启用IIS与FTP服务组件、创建FTP站点、配置防火墙设置等关键步骤。特别针对共享文件和防火墙设置等常见问题提供实用解决方案,帮助用户在5分钟内实现高效文件共享。 阅读详情

相关推荐

DOS命令之——net命令详解

许多 Windows NT 网络命令net 开始。这些 net 命令有一些公共属性: 通过键入 net /? 可查阅所有可用的 net 命令。 通过键入 net help 命令可在命令行中获得 net 命令的语法帮助。例如,要得到 net acco unts 命令的帮助,请键入 net help accounts。 所有 net 命令接受选项 / yes 和 /no(可缩写为 / y 和 /n )。/ y 对命令产生的任何交 互提示自动回答“是”,/n 回答“否”。例如,net stop server 通常提示确认是否根据服 务器服务结束所有服务,net stop server /y 自动回答“是”并关闭服务器服务。

C# CMD + net use 映射网络驱动器和FTP文件区别

操作:通过 net use 命令将网络共享映射为本地驱动器字母(如 Z:),然后可以像操作本地文件系统一样操作这些共享文件。操作:通过 FTP 客户端或命令行工具(如 ftp.exe 或 curl)将文件FTP 服务器。协议:使用 FTP(File Transfer Protocol)协议进行文件传输。协议:使用 SMB(Server Message Block)协议进行文件共享。用途:主要用于通过 FTP 协议将文件到远程服务器。

m0_62761926的博客 456

C#实现ftp服务器文件下载路径创建

C#实现ftp、下载、创建目录,编译成dll文件,C#直接引用,并且已经注册为com组件,vb也可以调用

如何使用Windows命令提示符(CMD)上文件

在渗透测试的过程中,常常需要向目标主机上文件,我在最近的学习测试过程中就碰到了这个问题,要求只能通过cmd shell向目标主机(Windows系统)上文件,所以本文就对该技巧做一下总结。图片来自于http://www.telegraph.co.uk/news/worldnews/northamerica/usa/11754089/Hacker-remotely-crashes-Jeep-from-10-miles-away.html。

黑战士的博客 4340

仅通过CMD文件

可能某些时候你喜欢只通过cmd来下载文件,抑或某些特定情况只有cmd界面可以使用(nc反弹shell),在一台没安装curl等第三方下载器的windows的cmd似乎不是很方便文件,这里记录5种方法(nc,文件共享,写入vbs结合http服务下载,通过ie缓存下载,ftp服务下载) 1.nc 适用于通过nc反弹得到界面的情况 nc -v -l -p 4141 >...

AlunX_daren的博客 4714

cmd 命令快速实现文件批量转移

cmd 命令快速实现文件批量转移!

ChinaLiaoTian的博客 5524

本地电脑使用命令行上文件至远程服务器

scp C:/Users/"你的用户名"/Desktop/environment.yml ws:~/environment.yml。其中,C:/Users/“你的用户名”/Desktop/environment.yml是本地文件的路径,~/environment.yml是远程服务器的home路径(不一定非要home路径,自己决定),中间的ws:代表要上的目的服务器(我这里给服务器取了别名,一般使用服务器ip地址)。

m0_63294504的博客 1283

cmd命令小结

1)osql -U sa -P manager -S "PANFUBIN/SQL2005" -i Sql/CreateDatabase1.sql --执行CreateDatabase1.sql中的语句 C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regsql -S localhost -E -A all -d MSPetShop4Se

水煮鱼的博客 853

asp.net web大文件传输 4G以上(调用CMD FTP

using System.IO; using System.Diagnostics; public bool UploadFileToFTPByCmd(string LocalPath) { string _strFtpIP = "172.16.2.15"; string _strFtpPort = "21";...

weixin_30492601的博客 138

cmd命令

一,ping      它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。下面就来看看它的一些常用的操作

hn2002的专栏 904

ASP.NET 4.0 尚未在WEB服务器上注册

当我在VS 2012里面新建一个WEB网站时,提示ASP.NET 4.0 尚未在WEB服务器上注册,如下图所示: ASP.NET 是一个开发框架,用于通过 HTML、CSS、JavaScript 以及服务器脚本来构建网页和网站。解决办法: 1.IIS应用程序池添加 net framework4.0版本。 首先我们需要打开IIS服务站点,创建IIS服务站点的方法:http://jingyan.b

努力发光呀 1万+

怎样用asp调用ftp命令实现文件

怎样用asp调用ftp命令实现文件,怎样调用ftp命令实现ftp文件的功能?? 因为上文件太大又太多,所以不能用fso上! 而且上文件是服务器针对别一服务器,不是客户端对服务器!!

ASP.NET Core 应用发布与部署指南

一、前言 本篇主要包含哪些内容? 将项目发布到本地目录 将项目传输到服务器并配置启动&开机自动启动 将Nginx作为访问入口,配置反向代理 本篇环境信息 开发环境: 用途工具&版本 操作系统 Windows 10 开发工具 Visual Studio 2017(15.7.5) SDK .NET ...

dingfangpang3029的博客 101

部署Asp.net core & Nginx,通过nginx转发

部署Asp.net core & Nginx,通过nginx转发 CentOS 7 x64 1.vs2017 建立Asp.net core项目,并发布到目录 2.通过FTP工具,将程序copy到CentOS上。 3.配置nginx源 vi /etc/yum.repos.d/nginx.repo #创建并编辑nginx源的配置文件 不同的...

weixin_30654583的博客 584

WinSCP实现树莓派3文件:零命令行SFTP可视化传输方案

SFTP(SSH文件传输协议)是Linux嵌入式设备安全文件传输的基础技术,依托SSH加密通道,无需额外服务即可实现双向文件交互。相比FTP明文风险与命令行scp的学习门槛,SFTP图形化客户端如WinSCP通过复用默认开启的22端口,提供拖拽式、带校验、可续的稳定传输能力。其技术价值在于降低树莓派3等ARM开发板的入门障碍,适配USB总线受限、microSD写入瓶颈等硬件约束,并天然兼容Raspberry Pi OS的默认安全策略。典型应用场景包括新手首次项目部署、学生代码调试、IoT配置同步及日志备份

weixin_33924220的博客 664

通过CMD命令连接ftp下载和上文件

通过CMD命令连接ftp下载文件 win+r输入cmd打开DOS命令 2.连接ftp 格式:ftp ip然后回车根据提示输入用户名和密码 3.登陆成功后.输入&quot;cd&quot;命令.会显示&quot;远程目录&quot;,输入&quot;dir&quot;命令会显示目录下的文件,权限等相关信息.可以通过&quot;cd 文件名&quot;命令进入到要下载的文件目录下.然后输入&quot;ls&q

太阳上的雨天 1万+

通过cmd文件ftp服务器,通过cmd完成FTP文件操作

一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去。改用了一段时间的 Web 版的 FTP 工具,后来那个页面也经常打不开。有一天忽然想起了 cmd 里面有个 ftp 命令,于是想试试看能否不用什么其它的工具,就通过命令行来做点事情。在 help 命令的帮助下,结果还挺顺利地就实现了上文件的操作。虽然很简单,还...

weixin_42363315的博客 5897

渗透技巧——通过cmd文件的N种方法

渗透技巧——通过cmd文件的N种方法 三好学生 · 2016/04/05 10:23 0x00 前言 在渗透测试的过程中,常常需要向目标主机上文件,我在最近的学习测试过程中就碰到了这个问题,要求只能通过cmd shell向目标主机(Windows系统)上文件,所以本文就对该技巧做一下总结。 图片来自于http://www.telegraph.co.uk/news

citelao的博客 8117
上一篇: 【转】一步一步学Linq to sql(五):存储过程
下一篇: 编程常用信息
ceozhg2009
博客等级 码龄15年 2粉丝 24原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值