2013-10-29 38 views
0

使用MvcFileUploader 1.3.2 http://www.nuget.org/packages/MvcFileUploader/該演示並不會將上傳的文件保存到我的服務器。MvcFileUploader 1.3.2不保存文件

我正在使用VS2010。

要複製創建一個新的Web項目,並獲得NuGet包

PM> Install-Package MvcFileUploader 

運行該項目,並導航到演示

http://localhost/MvcUploaderTest/Demo 

使用控件上傳文件,我使用的是小jpg。您應該看到返回的JSON結果。第一項是錯誤,我的看起來像這樣。

{"files":[{"error":null,... 

檢查上傳目錄並查看文件是否已上傳。

~/Content/uploads/ 

沒有應用程序或日誌中的錯誤或異常。任何人都可以得到這個演示工作?

這看起來像一個有用的軟件包,它使用了一個不錯的jQuery文件上傳器。它有一個Html幫助剃刀,創建縮略圖,你可以將上傳的文件關聯到實體。我研究過使用http://backload.org/,但它重得多,看起來像更多的配置。

感謝

編輯 這裏是JSON返回

{ 
"files": [{ 
    "error": null, 
    "name": "C:\\MvcApplication2\\MvcApplication2\\Content\\txt.jpg", 
    "size": 286054, 
    "type": "image/bmp", 
    "url": "/MvcUploaderTest/DownloadFile?fileUrl=/Content/uploads/C:\MvcApplication2\MvcApplication2\Content\txt.jpg\u0026mimetype=image/bmp", 
    "delete_url": "/MvcUploaderTest/DeleteFile?entityId=1234\u0026fileUrl=/Content/uploads/C:\\MvcApplication2\\MvcApplication2\\Content\\txt.jpg", 
    "thumbnail_url": "/Content/uploads/C:\\MvcApplication2\\MvcApplication2\\Content\\txt.jpg?width=80\u0026height=80", 
    "delete_type": "POST", 
    "FullPath": "C:\\MvcApplication2\\MvcApplication2\\Content\\uploads/C:\\MvcApplication2\\MvcApplication2\\Content\\txt.jpg", 
    "SavedFileName": "C:\\MvcApplication2\\MvcApplication2\\Content\\txt.jpg", 
    "Title": "txt" 
}] 

}

+0

工作的承諾,我想它只是一個分鐘前。如果上傳的圖像顯示在上傳對話框中,則上傳的圖像會被上傳的文件所喜歡。 – developer10214

+0

上傳的圖像不會顯示給我。進度條只是繼續前進。 @ developer10214您使用的是VS和ASP.MVC的哪個版本? –

+0

我正在使用VS 2010&VS 2012和MVC4 – developer10214

回答

1

好像你正在使用IE8

問題是Request.Files [0] .FileName從IE8發佈的情況下給出文件的完整路徑。

Request.Files [0] .FileName獲得價值C:\ MvcApplication2 \ MvcApplication2 \內容\ txt.jpg

而所有現代瀏覽器包括IE10僅給出文件名沒有路徑上傳。

Request.Files [0] .FileName獲得價值txt.jpg

不知道如何HttpPostedFileBase.FileName屬性由MVC框架雖然實現。

由於MvcFileUploader將此名稱與StorageDirectory一起用於保存在IE8中失敗的文件。

修復:

在MvcUploaderTestController。UploadFile更改此行

//overriding defaults 
//x.FileName = Request.Files[i].FileName; //original 
x.FileName = new FileInfo(Request.Files[i].FileName).Name; 

這應該保存文件。

但是,對於IE8也嘗試下載從操作返回的json結果,結果總是顯示進度。其實Blueimp插件試圖上載使用iframe的文件IE8 https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation

您需要發送的內容類型的文本響應/平原基於accept頭

感謝