【问题标题】:Upload image to Firebase through .NET Core Razor pages通过 .NET Core Razor 页面将图像上传到 Firebase
【发布时间】:2021-11-18 16:22:49
【问题描述】:

我正在尝试使用 .NET Core Razor 页面将图像上传到 Google Firebase。我对实际上传没有任何问题。但是对于某些原因,文件上传后为 0 kb。我也没有收到任何异常或任何其他错误。

上传.cshtml

<form method="post" enctype="multipart/form-data">
   <input name="photo" class="form-control" type="file" accept="image/*" />
   <input type="submit" value="Add product" />
</form>

上传.cshtml.cs

public async Task OnPostAsync(IFormFile photo)
{
       var path = Path.Combine(_env.ContentRootPath, "Uploads", photo.FileName);
       var stream = new FileStream(path, FileMode.Create);
       await photo.CopyToAsync(stream);
       FileName = photo.FileName;

       var task = new FirebaseStorage("[project_name].appspot.com")
                         .Child(FileName)
                         .PutAsync(stream);
}

【问题讨论】:

    标签: c# .net firebase firebase-storage razor-pages


    【解决方案1】:

    这就是我最终成功上传到 Google Firebase 的方式。

    var file = Path.Combine(_environment.ContentRootPath, "uploads", Product.Upload.FileName);
                        using (var fileStream = new FileStream(file, FileMode.Create))
                        {
                            await Product.Upload.CopyToAsync(fileStream);
                        }
    
                        // FirebaseStorage.Put method accepts any type of stream.
                        var stream = System.IO.File.Open(file, FileMode.Open);
    
                        //Get file extension
                        string ext = Path.GetExtension(Product.Upload.FileName);
    
                        // you can use CancellationTokenSource to cancel the upload midway
                        var cancellation = new CancellationTokenSource();
    
                        //Upload image to Google Firebase Storage
                        var task = await new FirebaseStorage([project_name].appspot.com,
                        new FirebaseStorageOptions
                        {
                            ThrowOnCancel = true
                        })
                        .Child("[folder_name]")
                        .Child($"IMAGE_{Guid.NewGuid()}{ext}")
                        .PutAsync(stream, cancellation.Token);
    
                        //Closing stream inorder to delete image from server
                        stream.Close();
    

    【讨论】:

      猜你喜欢
      • 2022-01-20
      • 1970-01-01
      • 2021-02-21
      • 2020-04-26
      • 2021-01-19
      • 2020-09-08
      • 2020-12-21
      • 2020-04-03
      • 1970-01-01
      相关资源
      最近更新 更多