asp.net 使用ftp 上传 下载
2009-03-31 14:11
330 查看
/// <summary> /// FtpWeb 的摘要说明 /// </summary> public class FtpWeb { string ftpServerIP; string ftpRemotePath; string ftpUserID; string ftpPassword; string ftpURI; /// <summary> /// 连接FTP /// </summary> /// <param name="FtpServerIP">FTP连接地址</param> /// <param name="FtpRemotePath">指定FTP连接成功后的当前目录, 如果不指定即默认为根目录</param> /// <param name="FtpUserID">用户名</param> /// <param name="FtpPassword">密码</param> public FtpWeb(string FtpServerIP, string FtpRemotePath, string FtpUserID, string FtpPassword) { ftpServerIP = FtpServerIP; ftpRemotePath = FtpRemotePath; ftpUserID = FtpUserID; ftpPassword = FtpPassword; ftpURI = "ftp://" + ftpServerIP + "/" + ftpRemotePath + "/"; } /// <summary> /// 上传 /// </summary> /// <param name="filename"></param> public bool Upload(string filename, out string errorMsg) { errorMsg = ""; FileInfo fileInf = new FileInfo(filename); string uri = ftpURI + fileInf.Name; FtpWebRequest reqFTP; reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri)); reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword); reqFTP.KeepAlive = false; reqFTP.Method = WebRequestMethods.Ftp.UploadFile; reqFTP.UseBinary = true; reqFTP.ContentLength = fileInf.Length; int buffLength = 2048; //开辟2KB缓存区 byte[] buff = new byte[buffLength]; int contentLen; FileStream fs = fileInf.OpenRead(); try { Stream strm = reqFTP.GetRequestStream(); contentLen = fs.Read(buff, 0, buffLength); while (contentLen != 0) { strm.Write(buff, 0, contentLen); contentLen = fs.Read(buff, 0, buffLength); } strm.Close(); fs.Close(); return true; } catch (Exception ex) { errorMsg = ex.Message; return false; } } /// <summary> /// 下载 /// </summary> /// <param name="filePath"></param> /// <param name="fileName"></param> public bool Download(string filePath, string fileName, out string errorMsg) { errorMsg = ""; FtpWebRequest reqFTP; try { FileStream outputStream = new FileStream(filePath + "//" + fileName, FileMode.Create); reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + fileName)); reqFTP.Method = WebRequestMethods.Ftp.DownloadFile; reqFTP.UseBinary = true; reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword); FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse(); Stream ftpStream = response.GetResponseStream(); long cl = response.ContentLength; int bufferSize = 2048; int readCount; byte[] buffer = new byte[bufferSize]; readCount = ftpStream.Read(buffer, 0, bufferSize); while (readCount > 0) { outputStream.Write(buffer, 0, readCount); readCount = ftpStream.Read(buffer, 0, bufferSize); } ftpStream.Close(); outputStream.Close(); response.Close(); return true; } catch (Exception ex) { errorMsg = ex.Message; return false; } } }
相关文章推荐
- asp.net ftp 上传,下载,删除文件,创建文件夹,删除文夹,重命名类
- ASP.NET MVC 使用jquery.form.js 异步上传 在IE下返回值被变为下载的解决办法
- asp.net 操作ftp上传下载 实战
- [Android中级]使用Commons-net-ftp来实现FTP上传、下载的功能
- 使用sun.net.ftp下载、上传文件完整版
- asp.net使用FtpWebRequest向ftp上传文件报错 基础连接已经关闭: 服务器提交了协议冲突
- ASP.NET上传下载文件示例,使用webClient实现
- ASP.NET上传下载文件,使用TransmitFile方法实现下载。
- asp.net通过ftp路径上传和下载文件
- 最近用到的觉得比较不错的几个tips-(1)asp。net操作ftp,上传和下载 (2) 长时间提交,在提交后禁止页面按钮 (3) 方便的javascript日历
- ASP.NET上传下载文件示例,使用webClient实现
- [Android中级]使用Commons-net-ftp来实现FTP上传、下载的功能
- 使用commons-net实现FTP文件上传与下载工具类
- ASP.NET FTP的操作(包括上传、下载、重命名、删除、检查是否存在)
- 【FTP】使用org.apache.commons.net.ftp.FTPClient 实现FTP的上传下载
- [导入]最近用到的觉得比较不错的几个tips-(1)asp。net操作ftp,上传和下载 (2) 长时间提交,在提交后禁止页面按钮 (3) 方便的javascript日历
- ASP.NET 使用FTP上传文件
- 使用comment.net的FTP工具后支持完美的断点上传和下载
- (1)asp。net操作ftp,上传和下载 (2) 长时间提交,在提交后禁止页面按钮 (3) 方便的javascript日历
- 比较不错的几个tips-(1)asp。net操作ftp,上传和下载 (2) 长时间提交,在提交后禁止页面按钮 (3) 方便的javascript日历