2013-12-07 65 views
6

我想在我的ASP.NET MVC應用程序中使用dropzone.js上傳圖片。我能夠以編程方式設置dropzone,單擊它,選擇圖像,當我在文件對話框中單擊「打開」時,正確的操作在控制器中被擊中。但是,HttpPostedFileBase總是返回爲空,所以我無法對圖像進行任何操作。然而,在客戶端,它會正確顯示圖像縮略圖,儘管我無法在服務器端獲取它。dropzone.js和ASP.NET MVC文件發佈爲空?

這是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爲空。有沒有人有任何想法?順便說一句,「dz-message」類被添加到dropzone中的圖像佔位符,因爲在那之前它不是可點擊的。我在某個地方讀過這篇文章,這是對這個問題的解決方法,它工作。

任何想法爲什麼我得到null imageFile?

+4

默認參數的名稱是'file',而你的是'imageFile'。將'imageFile'改爲'file',它會起作用 – Catalin

+0

就是這樣。謝謝! – user2623997

+0

@RaraituL將其作爲回答....它對像我這樣的新手很好的幫助 –

回答

3

Dropzone使用的默認參數名稱是file,而你的是imageFile。將imageFile更改爲file並且它可以工作

0

您可能會錯過一個小小的調整。

發生在我身上很多次,

您使用的表單元素,必須有它的enctype屬性設置是這樣的:

是懸浮窗採用
<form action="~/Home/SaveUploadedFile" method="post" enctype="multipart/form-data"/>