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

时间:2022-10-14 17:43:32
在本地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();  
#             }  
#         }     



这是什么原因?

8 个解决方案

#1


该回复于2010-12-15 15:07:36被版主删除

#2


服务器必须能ftp访问到外网、物理文件必须在服务器上、防火墙设置等

#3


服务器能访问到外网 是网站上传到服务器后 在客户机打开网站上传文件客户机上的文件 出错

#4


 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路径的一部分 无奈中...

#5


需要临时提升你C#程序的权限 在执行完操作后恢复当前权限。
代码在家 回去找找

#6


上传文件并使用FTP再上传到别的服务器的方法

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

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



在客户机打开网站上传文件客户机上的文件 出错?
程序在服务器上,跟谁上传没什么关系,在你这里上传那个服务器是正常的吗?

#7


上传到服务器,通过ftpwebrequest
路径为服务器端路径
WebClient myWebClient = new WebClient();

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

#8


自己找到问题在哪了  网站上传到服务器后 用WebClient上传   WebClient会去找服务器上的路径 而不是找客户端的路径  所以会提示找不到路径  要用 fileupload上传才行

#1


该回复于2010-12-15 15:07:36被版主删除

#2


服务器必须能ftp访问到外网、物理文件必须在服务器上、防火墙设置等

#3


服务器能访问到外网 是网站上传到服务器后 在客户机打开网站上传文件客户机上的文件 出错

#4


 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路径的一部分 无奈中...

#5


需要临时提升你C#程序的权限 在执行完操作后恢复当前权限。
代码在家 回去找找

#6


上传文件并使用FTP再上传到别的服务器的方法

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

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



在客户机打开网站上传文件客户机上的文件 出错?
程序在服务器上,跟谁上传没什么关系,在你这里上传那个服务器是正常的吗?

#7


上传到服务器,通过ftpwebrequest
路径为服务器端路径
WebClient myWebClient = new WebClient();

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

#8


自己找到问题在哪了  网站上传到服务器后 用WebClient上传   WebClient会去找服务器上的路径 而不是找客户端的路径  所以会提示找不到路径  要用 fileupload上传才行

相关文章