7

Kendo UI Yükleme (MVC sarmalayıcı) async modunda kullanmaya çalışıyorum. Chrome'da işler iyi görünüyor, ancak IE'de böyle bir şans yok (şu andan itibaren sadece IE 9'da test edildi). Yüklemeyi başlattığında, eylem yöntemime ulaştığını ve isteğin beklediğim verileri içerdiğini görebiliyorum, ancak hiçbir şey kaydedilmiyor.Kendo UI Async Upload Internet Explorer'da çalışmıyor Upload

Kod örnekleri aşağıdadır: aslında çalıştığınızda (upload)

_EditForm.cshtml

@(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" }))) 

Kontrolör 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

Sürüm? – Andrei

+0

@AndreiMikhalevich - Üzgünüm, sadece bunu dahil etmek için soruyu güncelledi. Bu sürüm 9. –

+0

@AndreiMikhalevich Bu öyle görünüyor, bu yüzden neden Chrome'da çalışıyor, ancak IE neden daha karışıktır. –

cevap

8

başka sonrası söyleyen Eh olarak, " 'Neden Internet Explorer çok kötü emmek mu' hakkındaki bölüm 52245315 hoş geldiniz:

Internet Explorer'da bir HttpPostedFileBase üzerine file.FileName ne zaman çıkıyor , bu yerel makinede dosyanın tam yolunu istiyor düşünüyor. Chrome ve Firefox doğru var gibi gibi belli ki bir IE tek şey.

yalnızca th istediğinizde aşağıdakileri yapmanız emin olun E fiiliFileName: IE

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

sorundur bir dosyayı kaydedin ve sunucudan bir başarı yanıtı geri gönderin. Gösterilerinizin bunlardan herhangi birini yaptığını sanmıyorum. Ie9'daki iframe, sunucudan yanıt almaz. Tarayıcı, yalnızca bir metin json yanıtı olsa bile yanıtın bir indirme olduğunu düşünüyor. Bunu, iframe'deki yük olayının asla kovulmadığı gerçeğine kadar, bu yanıtı işlemek için gereken yükleyici işleyicisinin hiçbir şey yapmaması nedeniyle hata ayıkladım. Diğer tüm tarayıcılarda bu çalışıyor.

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

+0

Bu mesajı gördüm, ama sorumu yanıtlamıyor. Sunucu ** olması gereken ** dönüyor, ama aslında dosyayı kaydetme değil. –