1

Jquery Uploadifyを使用して、ファイルをコントローラーに渡すことができません。

意見 :

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

Jquery:

<script type="text/javascript">
    $(function () {

        var uploadUrl = $('#file_upload').data();

        $('#file_upload').uploadify({

            'auto': true,
            'script': uploadUrl,               
            'swf': 'Uploadify/uploadify.swf',
            'uploader': '/ControllerName/Upload',               
            'debug': true

        });
    }); 
</script>

コントローラ

  [HttpPost]
    public string Upload(HttpPostedFileBase file)
    {          
       //"file" = null is being passed from the view to the controller.
       //code..
    }

私は何かが欠けています、あなたの助けに感謝します。

4

3 に答える 3

2

次を使用できます。

[HttpPost]
public string Upload(HttpPostedFileBase FileData) {
}

また

[HttpPost]
public ActionResult Upload() {
    if (Request.Files.Count > 0 && Request.Files[0].ContentLength > 0) {
        HttpPostedFileBase postedFile = Request.Files[0];
        // Do something with it
    }
}

これらのどちらも機能せず、アクションがまったく実行されない場合(つまり、デバッグを試みて、メソッド内のブレークポイントがヒットするかどうかを確認する)、問題は「script」値である可能性が高いです-仮想ディレクトリで実行していますか? ?その場合は、ディレクトリの名前を前に置く必要があります。Uploadifyは絶対パスを使用しています。

swfパスを確認することもできますswf': 'Uploadify/uploadify.swf'。構成方法は、現在のページを基準にしています。したがって、localhost / Somepageを使用している場合は、/ Somepage / Uploadify/uploadify.swfを検索します。ブラウザの[ネットワーク]タブをチェックして、uploadify.swfが404

于 2012-08-14T21:35:01.510 に答える
2

UploadifyはfileDataデフォルトで使用するため、次のようになります。

[HttpPost]
public string Upload(HttpPostedFileBase fileData) 
{
    ...
}

fileObjNameただし、次の設定を使用してこの名前を指定することもできます。

fileObjName: 'foobar'

その後:

[HttpPost]
public string Upload(HttpPostedFileBase fooBar) 
{
    ...
}
于 2012-08-14T21:49:17.137 に答える
1

jquery Uploadifyに精通していませんが、入力の名前はHttpPostedFileBaseパラメーターの名前と一致するべきではありませんか?そうでない場合は無視してください。それが私が見る唯一のものです。

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

 [HttpPost]
public string Upload(HttpPostedFileBase file_upload)
{          
  ...
}

更新:なるほど、UploadifyはfileDataをパラメーターとして使用します。

于 2012-08-14T21:47:23.103 に答える