设为首页 | 加入收藏 | 联系站长
Google
 | 星际争霸 | 星际争霸II | 暗黑破坏神
 | 魔兽争霸 | 英雄无敌  
 您现在的位置: 好技术学习网 >> 技术文章 >> ASP.NET技术 >> ASP.NET技术应用 >> 文章正文
相 关 文 章
解析.Net框架下的XML编程技…
VS.NET下web项目源代码管理
NUnit学习之VS.net 2005篇
在VS.NET 2005中体验clicko…
使用VS.NET 2005 Beta 2初次…
VS.NET 2002下水晶报表的安…
VS.Net中的水晶报表的应用
vs.net+c#程序快速开发数据…
VS.NET解决方案的版本兼容问…
当VS.NET2003遇上2005,WebS…
最 新 热 门
最 新 推 荐
精 彩 游 戏
移动能力强,防御强大,任何地方都可以建筑,隐形,多样性,船舶,科技树…
[星际补丁]1.14·1.13f·1.08b
[星际2]酷图 [星际2]人族视频
[人类]大法师  [兽族]暗影猎手
[精灵]恶魔猎手 [不死]死亡骑士
[资讯]魔兽资讯 [图库]魔兽酷图
[下载]魔兽下载 [壁纸]精美壁纸
暗黑破坏神入门 暗黑破坏神指引
[Hero5]宝物一览   英雄无敌
当前时间是:
asp.net利用FtpWebRequest 类实现上传文件到FTP
作者:- 来源:虾虾技术网 时间:2008-2-17 14:50:49 『 字号:  』
利用 FtpWebRequest 类实现上传文件到FTP. 先在本机建一个FTP站点,建在别的机器上也行.....
将 Ftp 的地址和帐号和密码等相关信息写 在 Web.config  , 方便管理 ,  这里利用 FileUpload 的 FileContent 属性 , 将文件流写到FTP服务器.
通过一个枚举来记录文件存储方式
enum FileUpLoadMethod
{
    file 
= 1 ,
    ftp 
= 2
}

下面重要的是利用 FtpWebRequest  类实现和FTP服务器的通讯.
FtpWebRequest request;
try
{
    request 
= ( FtpWebRequest )WebRequest.Create( GetUri( server , port , path , "FTP" ) );
}
catch
{
    backMsg 
= "创建FTP请求失败";
    
return false;
}
request.Method 
= WebRequestMethods.Ftp.UploadFile;
if( isAnoymous )
{
    request.Credentials 
= new NetworkCredential( "anonymous" , userEmail );
}
else if!string.IsNullOrEmpty( domain ) )
{
    request.Credentials 
= new NetworkCredential( username , password , domain );
}
else
{
    request.Credentials 
= new NetworkCredential( username , password );
}

建立好 FtpWebRequest 对象后 ,  剩下的事情就是将文件流写入FTP服务器了
Stream requestStream = null;
bool success = false;
request.ContentLength 
= inputStream.Length;
try
{
    requestStream 
= request.GetRequestStream( );
    success 
= true;
}
catch( Exception ex )
{
    success 
= false;
    
if( ex is WebException )
    {
        WebException wex 
= ex as WebException;
        
if( ( ( FtpWebResponse )wex.Response ).StatusCode == FtpStatusCode.ActionNotTakenFileUnavailable )
            backMsg 
= string.Format( "指定的文件路径不存在,错误如下:\n\t{0}" , ex.Message );
    }
    
else if( ex is ProtocolViolationException )
        backMsg 
= string.Format( "Protocol wrong:\n{0}\n" , ex.Message );
    
else
        backMsg 
= string.Format( "InvalidOperation:\n{0}\n" , ex.Message );
}
if( success )
{
    
try
    {
        
int count = 0;
        
byte[ ] buffer = new byte[1024];
        
while( ( count = inputStream.Read( buffer , 0 , 1024 ) ) > 0 )
        {
            requestStream.Write( buffer , 
0 , count );
        }
    }
    
catch( Exception ex )
    {
        success 
= false;
        backMsg 
= string.Format( "Write UploadStream wrong:\n{0}" , ex.ToString( ) );
    }
    
finally
    {
        requestStream.Close( );
        requestStream.Dispose( );
    }
}
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【打印本文】【关闭窗口

    网站公告 | 关于本站 | 联系站长 | 设为首页 | 加入收藏 | 友情链接 | 版权申明 | 广告服务 | 网站地图 | 访客留言

    Copyright ©
    建议使用1024*768分辨率及第三方浏览器对本站进行浏览
    | |
    本站大部分信息资源来源于网络,仅供学习|研究|探讨|收藏之用,版权归原作者所有!