在ftp上上传文件我想从一个服务器上传文件到另一个ftp服务器,下面是我上传文件的代码,但是它抛出错误:{“RemoteServerErrorreturned:(550)文件不可用(例如,找不到文件,无法访问)。”}这是我的代码:stringCompleteDPath="ftpURL";stringUName="用户名";字符串PWD="密码";WebRequestreqObj=WebRequest.Create(CompleteDPath+FileName);reqObj.Method=WebRequestMethods.Ftp.UploadFile;reqObj.Credentials=newNetworkCredential(UName,PWD);FileStreamstreamObj=System.IO.File.OpenRead(Server.MapPath(FileName));byte[]buffer=newbyte[streamObj.Length+1];streamObj.Read(buffer,0,buffer.Length);streamObj.Close();streamObj=null;reqObj.GetRequestStream().Write(缓冲区,0,缓冲区.长度);reqObj=null;你能告诉我哪里出错了吗?请确保您的ftp路径设置如下。字符串CompleteDPath="ftp://www.example.com/wwwroot/videos/";字符串文件名="sample.mp4";WebRequestreqObj=WebRequest.Create(CompleteDPath+FileName);以下脚本非常适合我使用ftp传输文件并将视频上传到另一台服务器。FtpWebRequestftpClient=(FtpWebRequest)FtpWebRequest.Create(ftpurl+""+用户名+"_"+文件名);ftpClient.Credentials=newSystem.Net.NetworkCredential(ftpusername,ftppassword);ftpClient.Method=System.Net.WebRequestMethods.Ftp.UploadFile;ftpClient.UseBinary=true;ftpClient.KeepAlive=true;System.IO.FileInfofi=newSystem.IO.FileInfo(fileurl);ftpClient.ContentLength=fi.Length;字节[]缓冲区=新字节[4097];整数字节=0;inttotal_bytes=(int)fi.Length;System.IO.FileStreamfs=fi.OpenRead();System.IO.Streamrs=ftpClient.GetRequestStream();while(total_bytes>0){bytes=fs.Read(buffer,0,buffer.Length);rs.Write(缓冲区,0,字节);total_bytes=total_bytes-字节数;}//fs.Flush();fs.Close();rs.关闭();FtpWebResponseuploadResponse=(FtpWebResponse)ftpClient.GetResponse();value=uploadResponse.StatusDescription;uploadResponse.Close();下面是在FTP服务器上上传文件的示例代码stringfilename=Server.MapPath("file1.txt");stringftpServerIP="ftp.demo.com/";字符串ftpUserName="虚拟";串ftpPassword="虚拟";FileInfoobjFile=newFileInfo(文件名);FtpWebRequestobjFTPRequest;//创建FtpWebRequest对象objFTPRequest=(FtpWebRequest)FtpWebRequest.Create(newUri("ftp://"+ftpServerIP+"/"+objFile.Name));//设置凭据objFTPRequest.Credentials=newNetworkCredential(ftpUserName,ftpPassword);//默认情况下,KeepAlive为真,其中控制连接//在命令执行后不关闭。objFTPRequest.KeepAlive=false;//设置数据传输类型。objFTPRequest.UseBinary=true;//设置内容长度objFTPRequest.ContentLength=objFile.Length;//设置请求方法objFTPRequest.Method=WebRequestMethods.Ftp.UploadFile;//设置缓冲区大小intintBufferLength=16*1024;byte[]objBuffer=newbyte[intBufferLength];//打开文件读取FileStreamobjFileStream=objFile.OpenRead();try{//获取文件Stream的Stream我是objStream=objFTPRequest.GetRequestStream();intlen=0;while((len=objFileStream.Read(objBuffer,0,intBufferLength))!=0){//写入文件内容objStream.Write(objBuffer,0,len);}objStream.Close();objFileStream.Close();}catch(Exceptionex){抛出ex;您还可以使用更高级别的WebClient类型来获得更简洁的代码来执行FTP操作:client.UploadFile("ftp://ftpserver.com/target.zip","STOR",localFilePath);如果你仍然遇到问题,那么是什么让我过去了这一切我得到了同样的错误,虽然我可以在我试图上传的目录中完美地看到文件-即:我覆盖了一个文件。我的ftpurl看起来像://ftp://www.mywebsite.com/testingdir/myData.xmlFtpWebRequestrequest=(FtpWebRequest)WebRequest.Create("ftp://www.mywebsite.com/testingdir/myData.xml"所以,我的凭据使用我的测试用户名和PW;request.Credentials=newNetworkCredential("tester","testerpw");那么,我的“tester”ftp帐户设置为“ftp://www.mywebsite.com/testingdir”,但是当我实际使用ftp[来自sayexplorer]时,我只需输入“ftp://www.mywebsite.com”,然后我使用我的测试人员凭据登录并自动发送到“testingdir”.so,使这项工作在C#中,我最终使用了url-ftp://www.mywebsite.com/myData.xml提供了我的测试帐户凭据并且一切正常。以上就是C#学习教程:ftp上传文件分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——publicvoidUploadImageToftp(){stringserver="ftp://111.61.28.128/Example/";//服务器路径字符串名称=@"E:Apachehtdocsvisaimage.png";//图片路径字符串Imagename=Path.GetFileName(name);FtpWebRequest请求=(FtpWebRequest)WebRequest.Create(newUri(string.Format("{0}{1}",server,Imagename)));request.Method=WebRequestMethods.Ftp.UploadFile;request.Credentials=newNetworkCredential("用户名","密码");流ftpStream=request.GetRequestStream();FileStreamfs=File.OpenRead(名称);字节[]缓冲区=新字节[1024];intbyteRead=0;do{byteRead=fs.Read(buffer,0,1024);(缓冲区,0,字节读取);}while(byteRead!=0);fs.Close();ftpStream.Close();MessageBox.Show("图片上传成功!!");如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
