ASP.NET 4.0環境でC#を使用した複数ファイルのアップロード

asp.net c# file html upload
ASP.NET 4.0環境でC#を使用した複数ファイルのアップロード

複数のファイルをアップロードするソリューションを探しています(参照ボタンをクリックし、Shiftキーを使用して複数のファイルを選択します)。

参照ボタンをクリックして1つずつアップロードする必要があるソリューションがいくつかあり、[送信]ボタンをクリックします。 しかし、ユーザーが複数のファイルを同時に選択できるようにする必要があります。

  10  5


ベストアンサー

は、セキュリティ上の懸念により、Webブラウザーによって大幅にロックされています。 複数のファイルを選択することはできません。 これを行うには、FlashまたはSilverlightを使用するか、複数のフィールドを使用する必要があります。

ユーザーが1つのファイルを選択できるようにし、jQueryを使用して別のファイルアップロード入力を生成する[別のファイルを追加]ボタンを提供できます。 そのようにして無制限の数のアップロードを許可できますが、ユーザーはそれぞれを個別に閲覧する必要があります。

補足として、HTML 5は複数のファイルのアップロードをサポートしますが、現在のWebブラウザーでは広く実装されていないため、オプションではありません。

5


プロパティ「AllowMultiple = true」を次のように設定します。 このプロパティは4.5フレームワークで利用可能です。

これにより、一度に複数のファイルを選択できます

Aspxコード:

Aspx.csコード:

protected void btnFileUpload_Click(object sender, EventArgs e)
{
    try
    {
        if (file_upload.HasFile && file_upload.PostedFiles.All(x => x.ContentType == "image/jpeg" && x.ContentLength < 102400))
        {
            foreach (var file in file_upload.PostedFiles)
            {
                file_upload.SaveAs(Server.MapPath("~/") + Path.GetFileName(file.FileName));
            }
            lblUploadStatus.Text = "File(s) uploaded successfully.";
        }
        else
        {
            lblUploadStatus.Text = "Please upload proper file.";
        }
    }
    catch (Exception ex)
    {
        lblUploadStatus.Text = "Error in uploading file." + ex.Message;
    }
}

5


以下のjQueryプラグインを使用して支援してきました。

必要な js`ファイルを含めると、 jQuery.multifile.pack.js`を以下のように使用できます。

`class =” multi “`を指定すると、複数のファイルを受け入れるようになります。

必要に応じて、制約を適用することもできます。 class =" max-3 "`のように、最大​​3つのファイルをアップロードできます。 `class =" accept-gif | jpg "`では、拡張子が `gif`または jpg`のファイルのみをアップロードできます。

サーバー側で複数のファイルを取得するには、 namespace`を含める必要があります: System.Web; `

その後、アップロードされた各ファイルを反復処理するための以下のコードを使用できます。

if (Request.Files.Count > 0)
{
    HttpFileCollection attachments = Request.Files;
    for (int i = 0; i < attachments.Count; i++)
    {
        HttpPostedFile attachment = attachments[i];
        if (attachment.ContentLength > 0 && !String.IsNullOrEmpty(attachment.FileName))
        {
            //do your file saving or any related tasks here.
        }
    }
}

これは、 `.net framework`のバージョンに関係ありません。

5


ジャスティンが言ったように、FlashまたはSilverlightを使用する必要があります。 私は後者の2つを取り、非常に満足しています。

Codeplexのhttp://slfileupload.codeplex.com/[Silverlight Multi File Uploader]をご覧ください。 これは私が使用したものであり、素晴らしかったです。 また、ニーズに合わせてカスタマイズするのも非常に簡単です。 これまでに約10,000個の画像をアップロードしており、ビートを見逃すことはありませんでした。

1


このように複数の属性を追加するだけです

このサイトをチェック

また、これを使用することもできます

-1


JQeryFileUploadのドラッグアンドドロップ機能を使用できます。CMSに使用し、ユーザーはソリューションに満足しているようです。デモサイトhttp://blueimp.github.com/jQuery-File-Upload/ [こちら]を試してください。 必要な数のファイルをドロップするだけで、実際の動作を確認できます。高度にカスタマイズ可能です。

-1


タイトルとURLをコピーしました