在Winfrom中怎么把图片上传到服务器? 我要做一个上传图片的功能,实现把本地的图片上传到服务器中,那位大大讲解一下 ,有代码最好 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 后台可以考虑使用ftp或是http服务器来接受文件,如果采用http的话,给你一个参考server (asp.net mvc)[AcceptVerbs(HttpVerbs.Post)] public void Push(string id) { string appName = id.Split('.')[0]; string targetFolder = Path.Combine(Server.MapPath("/Apps"), appName); if (!Directory.Exists(targetFolder)) { Directory.CreateDirectory(targetFolder); } var buffer = new byte[4096]; using (FileStream fs = new FileStream(Path.Combine(targetFolder, id), FileMode.Create)) { while (true) { int r = Request.InputStream.Read(buffer, 0, 4096); if (r <= 0) { break; } fs.Write(buffer, 0, r); } } }client (csharp)namespace AppGet { public class PushCommand : CommandBase { protected override void Execute() { string uri = string.Format("http://{0}/App/Push/{1}", ConfigurationManager.AppSettings["AppCenter"], Args["-file"]); Console.WriteLine(uri); HttpWebRequest request = HttpWebRequest.Create(uri) as HttpWebRequest; request.Method = "POST"; using (Stream stream = request.GetRequestStream()) { var buffer = new byte[4096]; using (FileStream fs = new FileStream(Args["-file"], FileMode.Open)) { while (true) { int r = fs.Read(buffer, 0, 4096); if (r <= 0) { break; } stream.Write(buffer, 0, r); } } } request.GetResponse(); } private const string DefaultContentType = "application/octet"; }} 我写的代码如下,可是报主机名无效和uri错误 怎么解决?public void UpLoad(string fileName) { FileInfo fileInfo = new FileInfo(fileName); string uri = "ftp:// " + ftpServerIP + "/ " + fileInfo.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 = fileInfo.Length; int buffLength = 2048; byte[] buff = new byte[buffLength]; int contentLen; FileStream fs = fileInfo.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(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Upload Error "); } } private void button1_Click(object sender, EventArgs e) { UpLoad(@"E:\唐磊\练习\Ftp\Ftp\Image\20070616233451.gif"); } string uri = @"ftp:// " + ftpServerIP + "/ " + fileInfo.Name; baichangle 还是不可以啊 还需要在服务器上写什么代码吗? nonocast 有没有Winfrom 用ftp实现图片上传的 指教一下撒 先谢过了 System.Net.WebClient webClient = new System.Net.WebClient();参考webClient.UploadFile方法 我的C程序不能发布 100分求一个事件代码 求淘汰比赛种子选手算法 希望大家指点 进者给分 求助文件读写高手来解决删除只读及隐藏目录文件问题 求一个SQL查询语句 .net下非asp工程可以设计web项目么? C# 如何获取软硬件信息 关于DOJO的问题 已知菜單項的Handle,如何得到菜單項? 請各位大蝦救急啊!!! 请问如何在C#中调用系统的文件复制对话框 用C#实现以下功能,能运行的话加分 怎么在for循环中查询sql语句,像这样的
server (asp.net mvc)[AcceptVerbs(HttpVerbs.Post)]
public void Push(string id) {
string appName = id.Split('.')[0];
string targetFolder = Path.Combine(Server.MapPath("/Apps"), appName);
if (!Directory.Exists(targetFolder)) {
Directory.CreateDirectory(targetFolder);
} var buffer = new byte[4096]; using (FileStream fs = new FileStream(Path.Combine(targetFolder, id), FileMode.Create)) {
while (true) {
int r = Request.InputStream.Read(buffer, 0, 4096);
if (r <= 0) { break; }
fs.Write(buffer, 0, r);
}
}
}
client (csharp)namespace AppGet {
public class PushCommand : CommandBase {
protected override void Execute() {
string uri = string.Format("http://{0}/App/Push/{1}", ConfigurationManager.AppSettings["AppCenter"], Args["-file"]);
Console.WriteLine(uri);
HttpWebRequest request = HttpWebRequest.Create(uri) as HttpWebRequest;
request.Method = "POST"; using (Stream stream = request.GetRequestStream()) {
var buffer = new byte[4096];
using (FileStream fs = new FileStream(Args["-file"], FileMode.Open)) {
while (true) {
int r = fs.Read(buffer, 0, 4096);
if (r <= 0) { break; }
stream.Write(buffer, 0, r);
}
}
} request.GetResponse();
} private const string DefaultContentType = "application/octet";
}
}
public void UpLoad(string fileName)
{
FileInfo fileInfo = new FileInfo(fileName); string uri = "ftp:// " + ftpServerIP + "/ " + fileInfo.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 = fileInfo.Length; int buffLength = 2048; byte[] buff = new byte[buffLength]; int contentLen; FileStream fs = fileInfo.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();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Upload Error ");
}
} private void button1_Click(object sender, EventArgs e)
{
UpLoad(@"E:\唐磊\练习\Ftp\Ftp\Image\20070616233451.gif");
}
参考webClient.UploadFile方法