7

WindowsAzureはかなり新しいです。私はこのチュートリアルに従いました:tutorial。これは完全に機能しますが、1つの制限は、私が考えているアプリケーションでは、複数のファイルを比較的迅速にアップロードできる必要があるということです。

複数ファイルのアップロードをサポートするようにチュートリアルを変更することは可能ですか。たとえば、ユーザーはShiftキーを押しながらクリックして複数のファイルを選択できます。

または、上記の詳細を説明する優れたチュートリアルを知っている人がいますか?

どんな助けでもありがたいです、

ありがとう

4

1 に答える 1

9

DotNetCurryのこのチュートリアルを見て、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>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();
    }
}

繰り返しになりますが、これは単なる擬似コードなので、それがどのように機能するかを想定しています。構文はテストしていませんが、近いと思います。

これがお役に立てば幸いです。幸運を!

于 2011-07-25T19:42:39.037 に答える