用WebClient进行FTP文件上传的问题

Forrest23 2010-12-15 02:21:33
在本地vs里运行网站,可以上传文件,但将网站发布到服务器上之后,通过域名访问打开网站,发布文件不成功,提示 WebClient请求期间异常 代码如下:


# private string UploadHttp(string strPhotoPath, string strXtNo, string strCmpno, string strType)
# {
# System.Net.WebClient f = null;
# try
# {
# f = new System.Net.WebClient();
# string strUserName = "user";
# string strPassWord = "pass";
# string strServer = "ftp://*****";
# //f.BaseAddress = strServer;
# f.Credentials = new System.Net.NetworkCredential(strUserName, strPassWord);
#
# string strPhotoName = strPhotoPath.Split('\\')[strPhotoPath.Split('\\').Length - 1];
# string strFileName = strCmpno + strXtNo + strType + "[" + strPhotoName;
# f.UploadFile(strServer + strFileName,"STOR",strPhotoPath);
#
# return strFileName;
# }
# catch (Exception e)
# {
# throw e;
# }
# finally
# {
# f.Dispose();
# }
# }



这是什么原因?
...全文
308 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Forrest23 2010-12-17
  • 打赏
  • 举报
回复
自己找到问题在哪了 网站上传到服务器后 用WebClient上传 WebClient会去找服务器上的路径 而不是找客户端的路径 所以会提示找不到路径 要用 fileupload上传才行
wuyq11 2010-12-15
  • 打赏
  • 举报
回复
上传到服务器,通过ftpwebrequest
路径为服务器端路径
WebClient myWebClient = new WebClient();

byte[] responseArray = myWebClient.UploadFile(服务器路径,fileName);

孟子E章 2010-12-15
  • 打赏
  • 举报
回复
上传文件并使用FTP再上传到别的服务器的方法

http://dotnet.aspx.cc/file/Upload-Files-TO-Another-File-Server-Using-FtpWebRequest-in-ASP.NET.aspx

WebClient没有测试过,不过,你的代码中 strPhotoPath 这个文件必须是服务器上的文件,不能是客户端的。客户端的一定要先上传。



在客户机打开网站上传文件客户机上的文件 出错?
程序在服务器上,跟谁上传没什么关系,在你这里上传那个服务器是正常的吗?
yujianchi 2010-12-15
  • 打赏
  • 举报
回复
需要临时提升你C#程序的权限 在执行完操作后恢复当前权限。
代码在家 回去找找
Forrest23 2010-12-15
  • 打赏
  • 举报
回复
f = new System.Net.WebClient();
string strUserName = "#";
string strPassWord = "#";
string strServer = "#";
//f.BaseAddress = strServer;
f.Credentials = new System.Net.NetworkCredential(strUserName, strPassWord);

string strPhotoName = strPhotoPath.Split('\\')[strPhotoPath.Split('\\').Length - 1];
string strFileName = strCmpno + strXtNo + strType + "[" + strPhotoName;

//string str = @"F:\Photo\签名图\2.jpg";
FileStream myStream = new FileStream(strPhotoPath, FileMode.Open, FileAccess.Read);
byte[] dataByte = new byte[myStream.Length];
myStream.Read(dataByte, 0, dataByte.Length);
myStream.Close();

//f.UploadFile(strServer + strFileName, "STOR", @strPhotoPath);
f.UploadData(strServer + strFileName, dataByte);

代码改成这样 提示 未能找到XXX路径的一部分 无奈中...
Forrest23 2010-12-15
  • 打赏
  • 举报
回复
服务器能访问到外网 是网站上传到服务器后 在客户机打开网站上传文件客户机上的文件 出错
孟子E章 2010-12-15
  • 打赏
  • 举报
回复
服务器必须能ftp访问到外网、物理文件必须在服务器上、防火墙设置等

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧