我想将文件上传到前端的ftp服务器。
我试过
IBrowserFile imgFile = e.File;
var buffer = new byte[imgFile.Size];
await imgFile.OpenReadStream().ReadAsync(buffer);
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://localhost:2121");
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential("login", "password");
using (FileStream fileStream = File.Open(imgFile.Name, FileMode.Open, FileAccess.Read))
{
using (Stream requestStream = request.GetRequestStream())
{
await requestStream.WriteAsync(buffer, 0, (int)imgFile.Size);
using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
{
Console.WriteLine($"Upload File Complete, status {response.StatusDescription}");
}
}
}
然而,我得到以下错误:
System.PlatformNotSupportedException: System.Net.Requests is not supported on this platform.
浏览器似乎不支持此程序包。
问题:如何将文件上传到ftp服务器?
根据此文档,尝试以下方式:
await using FileStream fs = new(path, FileMode.Create);
await browserFile.OpenReadStream().CopyToAsync(fs);
但我看到它可能是一张图片,所以试着使用这个方法:BrowserFileExtensions。RequestImageFileAsync
回到错误,我曾经得到过这个错误,因为异步编程模型(APM((使用IAsyncResult和BeginInvoke(不再是进行异步调用的首选方法。基于任务的异步模式(TAP(是自起推荐的异步模型。NET框架4.5。正因为如此,而且异步委托的实现依赖于中不存在的远程处理功能。中不支持NET Core、BeginInvoke和EndInvoke委托调用。NET核心。我不确定你的问题是不是这个。如果你想了解更多关于它的信息,这个博客可能会有所帮助。
美好的一天。