首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > VSTS >

Http下传 vs Ftp下传

2012-10-10 
Http上传 vs Ftp上传1:Http上传http上传就是通过http协议来向服务器上传文件,所以服务器端应该有一个处理

Http上传 vs Ftp上传

1:Http上传

http上传就是通过http协议来向服务器上传文件,所以服务器端应该有一个处理客户端请求的页面。

添加一个FileUploadHandler.ashx的文件来处理客户端请求。代码如下:

?

/// <summary>
/// FileUploadHandler 的摘要说明
/// </summary>
public class FileUploadHandler : IHttpHandler
{
    private const string UPLOAD_RESOURCES_FOLDER_NAME = "UploadResources";
    public void ProcessRequest(HttpContext context)
    {
        foreach (string fname in context.Request.Files.AllKeys)
        {
            string guidFileName = Guid.NewGuid().ToString();
            HttpPostedFile file = context.Request.Files[fname];
            file.SaveAs(context.Server.MapPath("~/" + UPLOAD_RESOURCES_FOLDER_NAME) +
                        "//" + guidFileName + file.FileName);
            Uri addressUri = context.Request.Url;
            string httpFilePath = string.Format("{0}://{1}/{2}/{3}",
                                                addressUri.Scheme,
                                                addressUri.Authority,
                                                UPLOAD_RESOURCES_FOLDER_NAME,
                                                guidFileName + file.FileName);
            context.Response.Write(httpFilePath);
        }
    }
    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

?

这段代码主要是获取客户端请求的Files,然后调用SaveAs方法保存到服务器端得UploadResources文件夹下,

接着返回一个http的路径给客户端。

?

上传的代码如下:

Http下传 vs Ftp下传

?

2:Ftp上传

首先需要新建Ftp站点:

可以使用工具创建,也可以使用iis来创建Ftp站点,在这里我使用iis来承载。

Http下传 vs Ftp下传

?

创建好Ftp站点后,假设

站点地址是:ftp://192.168.0.11/

用户名是:WQ,

密码是:123456.

?

那么上传的代码如下:

public static void Main()
{
    WebClient webClient = new WebClient();
    webClient.Credentials = new NetworkCredential("WQ", "123456");
    string ftpUrl = "ftp://192.168.0.11";
    string fileName = "c:\\test.txt";
    string uploadFilePath = string.Format("{0}{1}{2}", 
                                            ftpUrl,
                                            DateTime.Now.ToString("yyyyMMddHHmmss"),
                                            Path.GetFileName(fileName));
    webClient.UploadFile(uploadFilePath, fileName);
}

?

上面两个示例是介绍如何上传的,下面我对这两种方式做一下比较:

?

?

上传大文件:

?

?

热点排行