7

Próbuję użyć Kendo UI Upload (opakowanie MVC) w trybie asynchronicznym. Wszystko wydaje się działać dobrze w Chrome, ale nie ma takiego szczęścia w IE (jak na razie testowane tylko w IE 9). Kiedy rozpoczyna wysyłanie, widzę, że uderza w moją metodę działania, a żądanie zawiera dane, których oczekuję, ale nic nie jest zapisywane.Kendo UI Async Upload nie działa w Internet Explorerze

próbki kodu są poniżej:

_EditForm.cshtml (gdzie jest upload)

@(Html.Kendo().Upload() 
    .Name(string.Format("upload{0}", "background")) 
    .Multiple(true) 
    .Events(evt => evt.Success("refreshBackgroundImages")) 
    .Messages(msg => msg.DropFilesHere("drag and drop images from your computer here") 
         .StatusUploaded("Files have been uploaded")) 
    .Async(a => a.AutoUpload(true) 
       .SaveField("files") 
       .Save("UploadImage", "Packages", new { siteId = Model.WebsiteId, type = "background" }))) 

Controller ActionMethod

[HttpPost] 
public ActionResult UploadImage(IEnumerable<HttpPostedFileBase> files, Guid siteId, string type) 
{ 
     var site = _websiteService.GetWebsite(siteId); 
     var path = Path.Combine(_fileSystem.OutletVirtualPath, site.Outlet.AssetBaseFolder); 
     if (type == "background") 
     { 
      path = Path.Combine(path, _backgroundImageFolder); 
     } 
     else if (type == "image") 
     { 
      path = Path.Combine(path, _foregroundImageFolder); 
     } 
     foreach (var file in files) 
     { 
      _fileSystem.SaveFile(path, file.FileName, file.InputStream, file.ContentType, true); 
     } 
     // Return empty string to signify success 
     return Content(""); 
} 
+0

Wersja IE? – Andrei

+0

@AndreiMikhalevich - przepraszam, właśnie zaktualizowałem pytanie, aby to uwzględnić. Jest to wersja 9. –

+0

@AndreiMikhalevich To właśnie wydaje się być, dlatego jestem bardziej zdezorientowany, dlaczego działa w Chrome, ale nie w IE. –

Odpowiedz

8

także kolejny post powiedział: „Witamy w odcinku 52,245,315 z 'Dlaczego Internet Explorer ssać tak źle':

Okazuje się, że gdy zrobisz file.FileName na HttpPostedFileBase w programie Internet Explorer , uważa, że ​​chcesz całą ścieżkę pliku na komputerze lokalna. To oczywiście tylko IE rzecz, jak Chrome i Firefox wydaje się, że to dobrze.

Upewnij się, że wykonaj następujące czynności, gdy chcesz tylko th e rzeczywistyFileName:

var filename = Path.GetFileName(file.FileName); 
4

Problem jest, kiedy rzeczywiście spróbować zapisz plik i odeślij odpowiedź powodzenia z serwera. Nie sądzę, że twoje dema robią to. Element iframe w ie9 nie otrzymuje odpowiedzi od serwera. Przeglądarka uważa, że ​​odpowiedź jest pobierana, mimo że jest to zwykła odpowiedź json. Debugowałem to na fakt, że zdarzenie on load na elemencie iframe nigdy nie jest uruchamiane, więc program obsługi, który musi obsłużyć tę odpowiedź, nic nie robi. We wszystkich innych przeglądarkach to działa.

Źródło: http://www.kendoui.com/forums/kendo-ui-web/upload/async-uploader-and-ie-9-not-working.aspx

+0

Widziałem ten post, ale tak naprawdę to nie odpowiada na moje pytanie. Serwer wydaje się ** zwracać ** to, co powinno być, ale w rzeczywistości NIE jest to zapisanie pliku. –

Powiązane problemy