您的位置:首页 > 编程语言 > C#

C# WinForm 上传图片,文件到服务器的方法Uploader.ashx

2010-12-08 18:19 741 查看
网上有很多方案,起初用时,因为对asp.net不太了解,觉得FTP实现不错,可是后来发现,如果机器在域控下,就会有问题。

一年过去了,asp.net也熟悉了,知道ajax没事应该用ashx,验证码也用ashx,当然这里要说的WinForm上传也应该是ashx了吧,哈哈,先提供简单思路:

接收文件的asp.net是:Uploader.ashx,相关代码:

view plaincopy to clipboardprint?

<%@ WebHandler Language="C#" Class="Uploader" %>

using System;

using System.IO;

using System.Web;

public class Uploader : IHttpHandler

{

public void ProcessRequest(HttpContext hc)

{

foreach (string fileKey in hc.Request.Files)

{

HttpPostedFile file = hc.Request.Files[fileKey];

file.SaveAs(Path.Combine(hc.Server.MapPath("."), file.FileName));

}

}

public bool IsReusable

{

get { return true; }

}

}

<%@ WebHandler Language="C#" Class="Uploader" %>
using System;
using System.IO;
using System.Web;

public class Uploader : IHttpHandler
{
public void ProcessRequest(HttpContext hc)
{
foreach (string fileKey in hc.Request.Files)
{
HttpPostedFile file = hc.Request.Files[fileKey];
file.SaveAs(Path.Combine(hc.Server.MapPath("."), file.FileName));
}
}

public bool IsReusable
{
get { return true; }
}
}

发送图片或文件的WinForm.cs 相关代码:

view plaincopy to clipboardprint?

System.Net.WebClient myWebClient = new System.Net.WebClient();

myWebClient.UploadFile("http://www.yongfa365.com/Uploader.ashx", "POST", "C://WINDOWS//system32//cmd.exe");

System.Net.WebClient myWebClient = new System.Net.WebClient();
myWebClient.UploadFile("http://www.yongfa365.com/Uploader.ashx", "POST", "C://WINDOWS//system32//cmd.exe");


OK,完了,这样操作后,再也不用管是不是在域控内了,只要能上网,就能上传。够方便吧。

如果你要批量上传,还有上传后保存在哪个目录等操作可以参考柳永法(yongfa365)'Blog写的:

接收文件的asp.net是:Uploader.ashx,相关代码:

view plaincopy to clipboardprint?

<%@ WebHandler Language="C#" Class="Uploader" %>

using System;

using System.IO;

using System.Web;

public class Uploader : IHttpHandler

{

public void ProcessRequest(HttpContext hc)

{

string NowPath = Path.Combine(hc.Server.MapPath("."), hc.Request["path"]);

if (!Directory.Exists(NowPath))

{

Directory.CreateDirectory(NowPath);

}

foreach (string fileKey in hc.Request.Files)

{

HttpPostedFile file = hc.Request.Files[fileKey];

string FilePath = Path.Combine(NowPath, file.FileName);

if (File.Exists(FilePath))

{

if (Convert.ToBoolean(hc.Request["overwrite"]))

{

File.Delete(FilePath);

}

else

{

continue;

}

}

file.SaveAs(FilePath);

}

}

public bool IsReusable

{

get { return true; }

}

}

<%@ WebHandler Language="C#" Class="Uploader" %>
using System;
using System.IO;
using System.Web;

public class Uploader : IHttpHandler
{
public void ProcessRequest(HttpContext hc)
{
string NowPath = Path.Combine(hc.Server.MapPath("."), hc.Request["path"]);

if (!Directory.Exists(NowPath))
{
Directory.CreateDirectory(NowPath);
}

foreach (string fileKey in hc.Request.Files)
{
HttpPostedFile file = hc.Request.Files[fileKey];
string FilePath = Path.Combine(NowPath, file.FileName);
if (File.Exists(FilePath))
{
if (Convert.ToBoolean(hc.Request["overwrite"]))
{
File.Delete(FilePath);
}
else
{
continue;
}
}
file.SaveAs(FilePath);
}
}

public bool IsReusable
{
get { return true; }
}
}


发送图片或文件的WinForm.cs 相关代码:

view plaincopy to clipboardprint?

string url = @"http://www.yongfa365.com/Uploader.ashx?Overwrite=true&PATH=Logs/" + DateTime.Now.ToString("yyyy-MM-dd");

foreach (string file in Directory.GetFiles(item))

{

System.Net.WebClient myWebClient = new System.Net.WebClient();

myWebClient.UploadFile(url, "POST", file);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐