【问题标题】:Uploading Multiple Files to Azure Blob Storage将多个文件上传到 Azure Blob 存储
【发布时间】:2011-10-12 20:45:34
【问题描述】:

Windows Azure 的新手。我遵循了本教程:tutorial。它完美地工作,但是一个限制是,对于我想到的应用程序,它需要能够相对快速地上传多个文件。

是否可以修改教程以支持多文件上传,例如用户可以使用 shift-click 来选择多个文件..

或者如果有人知道任何详细说明上述内容的好教程?

感谢任何帮助,

谢谢

【问题讨论】:

    标签: c# file-upload azure-storage azure-blob-storage


    【解决方案1】:

    我会看一下来自 DotNetCurry 的 tutorial,它展示了如何使用 jQuery 创建多个文件上传来处理将文件多次上传到 ASP.NET 页面。它是使用 ASP.NET 3.5 构建的,但如果您使用的是 .NET 4 则无关紧要 - 没有什么太疯狂的事情发生了。

    但关键是 jQuery 插件将允许您将文件集合上传到服务器。后面的 ASP.NET 代码将通过循环处理 Request.Files 集合:

        HttpFileCollection hfc = Request.Files;
        for (int i = 0; i < hfc.Count; i++)
        {
            HttpPostedFile hpf = hfc[i];
            if (hpf.ContentLength > 0)
            {
                hpf.SaveAs(Server.MapPath("MyFiles") + "\\" +
                  System.IO.Path.GetFileName(hpf.FileName));
                Response.Write("<b>File: </b>" + hpf.FileName + " <b>Size:</b> " +
                    hpf.ContentLength + " <b>Type:</b> " + hpf.ContentType + " Uploaded Successfully <br/>");
            }
        }
    

    您可以将此代码放在您的教程中的 insertButton_Click 事件处理程序中 - 实质上是将 blob 创建和上传到上述代码的 if(hpf.ContentLength&gt;0) 块内的 blob 存储。

    所以伪代码可能看起来像:

    protected void insertButton_Click(object sender, EventArgs e)
    {
        HttpFileCollection hfc = Request.Files;
        for (int i = 0; i < hfc.Count; i++)
        {
          HttpPostedFile hpf = hfc[i];
    
          // Make a unique blob name
          string extension = System.IO.Path.GetExtension(hpf.FileName);
    
          // Create the Blob and upload the file
          var blob = _BlobContainer.GetBlobReference(Guid.NewGuid().ToString() + extension);
          blob.UploadFromStream(hpf.InputStream);
    
          // Set the metadata into the blob
          blob.Metadata["FileName"] = fileNameBox.Text;
          blob.Metadata["Submitter"] = submitterBox.Text;
          blob.SetMetadata();
    
          // Set the properties
          blob.Properties.ContentType = hpf.ContentType;
          blob.SetProperties();
        }
    }
    

    同样,它只是伪代码,所以我假设它是这样工作的。我没有测试语法,但我认为它很接近。

    我希望这会有所帮助。祝你好运!

    【讨论】:

      猜你喜欢
      • 2020-08-01
      • 2017-01-24
      • 2017-08-19
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      • 2019-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多