2013-12-07 21 views
6

私は、ASP.NET MVCアプリケーションで画像をアップロードするためにdropzone.jsを使用しようとしています。私はdropzoneをプログラマチックに設定し、それをクリックしてイメージを選択することができます。そして、ファイルダイアログで "開く"をクリックすると、正しいアクションがコントローラでヒットします。しかし、HttpPostedFileBaseは常にnullに戻りますので、画像で何もできません。しかし、クライアントサイドでは、サーバ側では取得できないのに、画像サムネイルが正しく表示されます。dropzone.jsと投稿されたASP.NET MVCファイルがnullですか?

これはHTMLです:

<div style="float:left;margin-right:2px;" id="mainImage"> 
    <img src="/images/AddImage_button.png" class="dz-message" /> 
</div> 

これは、ドキュメントの準備ができた後、私は呼んでjsのコードです:

var myDropzone = new Dropzone("div#mainImage", { url: "/Market/UploadImage" }); 

そして、これは、コントローラの内部アクションの呼び出しです:

public ContentResult UploadImage(HttpPostedFileBase imageFile) 
{ 

    if (imageFile == null || imageFile.ContentLength == 0) 
    { 
    //..... 
    } 
} 

アクションはヒットしましたが、imageFileはnullです。誰にもアイデアはありますか?ちなみに、 "dz-message"クラスはdropzone内のイメージプレースホルダに追加されました。その前にはクリック可能ではなかったからです。私はそれをどこかで読んだ。それはその問題の修正であり、それはうまくいった。

imageFileにnullが表示される理由は何ですか?

+4

をデフォルトのパラメータ名は 'file'あり、そしてあなたは、 'imageFile'です。 'imageFile'を' file'に変更すれば、それはうまくいくでしょう – Catalin

+0

それはそれでした。ありがとうございました! – user2623997

+0

@RaraituL回答として投稿してください。私のような初心者のための良い助け –

答えて

3

Dropzoneが使用するデフォルトのパラメータ名はfileで、あなたの名前はimageFileです。 imageFilefileに変更すると、動作します

0

ご迷惑をおかけしますが、ご了承ください。私に起こった

回の多くは、

使用するフォーム要素は、それがこのように設定するのenctype属性です持っている必要があります:ドロップゾーンが使用する

<form action="~/Home/SaveUploadedFile" method="post" enctype="multipart/form-data"/> 
関連する問題