我是Xamarin和C#世界的新手,我试图将图像上传到FTP服务器。我看到了FtpWebRequest类来做到这一点,但我没有得到它的权利,我不知道如何注入plataform特定的代码,我甚至不知道它的真正含义,已经看过这个视频(https://www.youtube.com/watch?feature=player_embedded&v=yduxdUCKU1c),但我不知道看不到如何使用它来创建FtpWebRequest类并上传图像。使用PCL将图像上传到FTP服务器Xamarin Forms
我看到了这段代码(这里是:https://forums.xamarin.com/discussion/9052/strange-behaviour-with-ftp-upload)发送一个图片,我无法使用它。
public void sendAPicture(string picture)
{
string ftpHost = "xxxx";
string ftpUser = "yyyy";
string ftpPassword = "zzzzz";
string ftpfullpath = "ftp://myserver.com/testme123.jpg";
FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpfullpath);
//userid and password for the ftp server
ftp.Credentials = new NetworkCredential(ftpUser, ftpPassword);
ftp.KeepAlive = true;
ftp.UseBinary = true;
ftp.Method = WebRequestMethods.Ftp.UploadFile;
FileStream fs = File.OpenRead(picture);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();
Stream ftpstream = ftp.GetRequestStream();
ftpstream.Write(buffer, 0, buffer.Length);
ftpstream.Close();
ftpstream.Flush();
// fs.Flush();
}
我没有一个类型的FileStream,WebRequestMethods和文件,也是我的FtpWebRequest类好好尝试一下具有“保持活动”,“UseBinary”和“GetRequestStream”的方法,我的Stream类不具有“关闭“方法。
我的FtpWebRequest类:
公共密封类的FtpWebRequest:WebRequest的 { 公共重写字符串的ContentType { 得到 { 抛出新NotImplementedException(); }
set
{
throw new NotImplementedException();
}
}
public override WebHeaderCollection Headers
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
public override string Method
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
public override Uri RequestUri
{
get
{
throw new NotImplementedException();
}
}
public override void Abort()
{
throw new NotImplementedException();
}
public override IAsyncResult BeginGetRequestStream(AsyncCallback callback, object state)
{
throw new NotImplementedException();
}
public override IAsyncResult BeginGetResponse(AsyncCallback callback, object state)
{
throw new NotImplementedException();
}
public override Stream EndGetRequestStream(IAsyncResult asyncResult)
{
throw new NotImplementedException();
}
public override WebResponse EndGetResponse(IAsyncResult asyncResult)
{
throw new NotImplementedException();
}
}
(我知道,我没写任何东西在那里,只是按了CTRL +。因为我不知道该怎么写有)
有谁可以提供我是一个FtpWebRequest类的完整样本?我只在上面找到这个类。