7

Sto provando a utilizzare il KI UI Upload (MVC wrapper) in modalità asincrona. Le cose sembrano funzionare bene in Chrome, ma nessuna fortuna in IE (come ora testato solo in IE 9). Quando avvia il caricamento, posso vederlo colpire il mio metodo di azione e la richiesta contiene i dati che mi aspetto, ma nulla viene effettivamente salvato.Kendo UI Async Upload non funzionante in Internet Explorer

Esempi di codice sono al di sotto:

_EditForm.cshtml (dove l'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

versione di IE? – Andrei

+0

@AndreiMikhalevich - mi dispiace, ho appena aggiornato la domanda per includerla. È la versione 9. –

+0

@AndreiMikhalevich Questo è quello che sembra essere, motivo per cui sono più confuso perché funziona in Chrome, ma non in IE. –

risposta

8

Beh, come un altro post, ha detto, "Benvenuti a puntata 52.245.315 di 'Perché l'Internet Explorer succhiare così male':

scopre che quando si fa file.FileName su un HttpPostedFileBase in Internet Explorer , pensa si desidera che l'intero percorso del file sul locale macchina . e 'ovviamente un solo IE cosa come Chrome e Firefox sembrano avere bene.

assicurarsi di eseguire le seguenti operazioni quando si desidera solo esimo e attualeFileName:

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

Il problema è quando si tenta di realtà salvare un file e inviare una risposta positiva dal server. Non penso che i tuoi demo stiano facendo nulla del genere. L'iframe in ie9 non riceve la risposta dal server. Il browser pensa che la risposta sia un download anche se si tratta di una semplice risposta JSON. Ho eseguito il debugging sul fatto che l'evento on load sull'iframe non viene mai attivato in modo che il gestore di onload che deve gestire questa risposta non stia facendo nulla. In tutti gli altri browser questo funziona.

Fonte: http://www.kendoui.com/forums/kendo-ui-web/upload/async-uploader-and-ie-9-not-working.aspx

+0

Ho visto quel post, ma in realtà non risponde alla mia domanda. Il server sembra essere ** che restituisce ** ciò che dovrebbe essere, ma NON sta effettivamente salvando il file. –