7

我想在异步模式下使用Kendo UI上传(MVC包装)。事情似乎在Chrome中运行良好,但在IE中没有这样的运气(截至目前只在IE 9中测试过)。当它启动上传时,我可以看到它触及我的操作方法,并且请求包含我期望的数据,但实际上没有保存任何内容。剑道UI异步上传不工作在Internet Explorer中

代码示例均低于:

_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" }))) 

控制器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

的IE版本? – Andrei

+0

@AndreiMikhalevich - 对不起,只是更新了这个问题。这是版本9. –

+0

@AndreiMikhalevich这就是它似乎是,这就是为什么我更困惑,为什么它在Chrome中,但不是IE。 –

回答

8

以及另外发帖称,“欢迎来到‘为什么InternetExplorer不吸得很厉害’插曲52245315:

原来,当你在Internet Explorer上HttpPostedFileBasefile.FileName ,它认为你想要的本地计算机上的文件的完整路径。这显然只是一个IE浏览器的东西如Chrome和Firefox似乎是正确的。

确保做的时候,你只需要个以下Ë实际FileName

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

问题是,当你真正尝试保存文件并从服务器发回成功响应。我不认为你的演示正在做这些。 ie9中的iframe没有收到来自服务器的响应。浏览器认为响应是一个下载,尽管它只是一个纯文本json响应。我将其调试到事实上iframe上的加载事件永远不会被触发,因此需要处理此响应的onload处理程序不会执行任何操作。在所有其他浏览器中,这是工作。

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

+0

我看到那篇文章,但它并没有真正回答我的问题。服务器似乎是**返回它应该是什么,但它实际上并不保存文件。 –

相关问题