Zvo*_*tic 1 c# file-upload cloudinary asp.net-core iformfile
我正在尝试将文件(图像,准确地)上传到Cloudinary.在Cloudinary的.NET(文档)文档中,据说文件应该像这样上传:
var uploadParams = new ImageUploadParams()
{
File = new FileDescription(@"c:\sample.jpg")
};
var uploadResult = cloudinary.Upload(uploadParams);
Run Code Online (Sandbox Code Playgroud)
所以基本上,我需要文件路径来上传图像.当我对其工作的路径进行硬编码时,我希望用户能够选择自己的文件.获取我发现的文件的唯一方法是使用IFormFile,但我可以使用它上传文件的唯一方法是首先将其上传到服务器,然后获取上传文件的路径并将其转发给Cloaudinary,但是必须是一个更好的方法.
那么如何让用户使用ASP.NET Core将文件上传到Cloudinary?
基本上,Cloudinary允许您从Paths或Streams上传文件.
对于文件路径:
var uploadParams = new ImageUploadParams()
{
File = new FileDescription(@"c:\sample.jpg")
};
var uploadResult = cloudinary.Upload(uploadParams);
Run Code Online (Sandbox Code Playgroud)
对于Stream:
HttpPostedFile file = fileInput.PostedFile;
var uploadParams = new ImageUploadParams()
{
File = new FileDescription(file.FileName, file.InputStream),
};
var uploadResult = cloudinary.Upload(uploadParams);
Run Code Online (Sandbox Code Playgroud)
第二种方法允许您甚至发布byte []图像内容或包含图像数据的Base64字符串,您可以轻松将其转换为Stream以进行上载.
//data is a byte[]
Stream stream = new MemoryStream(data);
var cloudinary = Connect();
var uploadParams = new ImageUploadParams()
{
File = new FileDescription(GetGuid.Short(), stream),
PublicId = GetGuid.Short()
};
var uploadResult = cloudinary.Upload(uploadParams);
return uploadResult.SecureUri.AbsoluteUri;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2384 次 |
| 最近记录: |