3

多分それは私だけですが、ユーザーがアップロードしたいファイルをキャプチャするために jQuery ダイアログを使用しようとしています。IE9 でサポートされている必要があります。IE9 は、私が遭遇した多くの例やサードパーティ ツールで使用されている FormData オブジェクトをサポートしていません。リクエストでページ全体が更新されないようにするには、アップロードを iFrame に入れる必要がありますか? 本当に?いくつかのフラッシュ アップローダーを入手できることは知っていますが、当サイトではフラッシュがサポートされていないため、現時点では問題外です。

お願い..私がこれを間違ってやっていると誰かに教えてください。私はそれを見つけることができないように見えるので、もっと簡単な方法があります..少なくともIE9では動作しません。

<form action="/ControllerName/ActionName" method="post" enctype="multipart/form-data">
    <label for="file">Filename:</label>
    <input type="file" name="file" id="file" />
    <input type="submit" name="submit" value="Submit" />
</form> 

次に、このようなiFrameに

<iframe src="myUrl"></iframe>
4

1 に答える 1

0

意見:

@using (Html.BeginForm("FileUpload","Message",FormMethod.Post,new { enctype="multipart/form-data"})) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Message</legend>

//your html here

                                <input type="file" name="files"/>

    </fieldset>

コントローラ:

[HttpPost]
        public ActionResult FileUpload(FormCollection values, IEnumerable<HttpPostedFileBase> files)
        {
             //do what you want with form values then for files

           foreach (var file in files)
            {
                if (file.ContentLength > 0)
                {
                    byte[] fileData = new byte[file.ContentLength];
                    file.InputStream.Read(fileData, 0, file.ContentLength);

                   //do what you want with fileData
                }
            }
        }

複数のファイルのアップロードを提供するので、使用します

IEnumerable<HttpPostedFileBase> files 

単一のファイルのみが必要な場合は、のみを使用します

HttpPostedFileBase file  

ビューで入力タイプをに変更します

<input type="file" name="file"/>  

そのような単純な。よろしく

編集:

より良い例を見てみましょう:

http://www.strathweb.com/2012/04/html5-drag-and-drop-asynchronous-multi-file-upload-with-asp-net-webapi/

http://css.dzone.com/articles/implementing-html5-drag-drop

よろしく

于 2012-05-29T16:33:41.583 に答える