C#上传文件到Web服务器

借助UploadHandler.ashx上传文件到Web服务器的指定文件夹下服务器

UploadHandler.ashx代码以下:spa

<%@ WebHandler Language="C#" CodeBehind="UploadHandler.ashx.cs" Class="WebApp.UploadHandler" %>

上传文件代码以下:code

using System;
using System.IO;
using System.Net;

namespace TestNew
{
    class Program
    {
        static void Main(string[] args)
        {
            var Appclient = new WebClient();
            var upTargetUri = new Uri("http://IP地址/WebApp/UploadHandler.ashx?fileName=./ClientBin/Files/test.txt");
            try
            {
                FileInfo MyFile = new FileInfo(@"d:\test.txt");
                FileStream MyStream = MyFile.Open(FileMode.Open, FileAccess.Read, FileShare.None);

                Appclient.OpenWriteAsync(upTargetUri, "POST", MyStream);
                Appclient.OpenWriteCompleted += delegate(object sender, OpenWriteCompletedEventArgs e)
                {
                    //将图片数据流发送到服务器上
                    Stream inputStream = e.UserState as Stream;
                    Stream outputStream = e.Result;
                    byte[] buffer = new byte[4096];
                    int bytesRead = 0;
                    while ((bytesRead = inputStream.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        outputStream.Write(buffer, 0, bytesRead);
                    }
                    outputStream.Close();
                    inputStream.Close();
                };
            }
            catch (Exception e)
            {
                Console.WriteLine("文件上传失败,请稍候重试:" + e.Message);
            }

            Console.ReadKey();
        }       
    }
}