我上传了一张图片,并希望将其发送到第三方服务(Cloudinary),而无需在我的服务器上保存该文件。
public async Task<List<string>> GetImagesUrlsByImage(IFormFile image)
{
List<string> urlList = new List<string>();
ImageUploadParams uploadParams = new ImageUploadParams();
using (var memoryStream = new MemoryStream())
{
await image.CopyToAsync(memoryStream);
uploadParams.File = new FileDescription(image.FileName, memoryStream);
uploadParams.EagerTransforms = new List<Transformation>
{
new EagerTransformation().Width(200).Height(150).Crop("scale"),
new EagerTransformation().Width(500).Height(200).Crop("scale")
};
ImageUploadResult result = await _cloudinary.UploadAsync(uploadParams);
var url = result.SecureUrl.ToString();
urlList.Add(url);
}
return urlList;
}
我没有收到异常,但Cloudinary的结果消息中有一个错误消息:“没有图像”;
在调试过程中,我看到了这些错误:
这段代码需要怎么修改?
image
的流已经指向一个文件流。 - CodeCasterMemoryStream
,当IFormFile
已经提供了对流的访问? - mjwillsOpenReadStream?
,我删除了MemoryStream
部分并使其工作,我之前不知道这一点,谢谢。 - Offir