我使用MVCFileManagerExtension
(DevExpress v14.2),错误"文件未找到"我试图下载文件时出现。
这是我的观看代码:
@model string
@Html.DevExpress().FileManager(settings =>
{
settings.Name = "FileManager";
settings.CallbackRouteValues = new { Controller = "FileManager", Action = "FileManagerPartial" };
...
settings.DownloadRouteValues = new { Controller = "FileManager", Action = "FileManagerPartialDownload" };
settings.Settings.ThumbnailFolder = Url.Content("~/Content/FileManager/Thumbnails");
settings.SettingsEditing.AllowDownload = true;
....
settings.SettingsFileList.View = DevExpress.Web.FileListView.Thumbnails;
}).BindToFolder(Model).GetHtml()
控制器:
namespace NextERP.Controllers
{
public class FileManagerController : Controller
{
public FileStreamResult FileManagerPartialDownload()
{
return FileManagerExtension.DownloadFiles(HomeControllerFileManagerSettings.CreateFileManagerDownloadSettings(), (string)HomeControllerFileManagerSettings.Model);
}
}
public class HomeControllerFileManagerSettings
{
public const string Folder = @"~\";
public static string Model { get { return Folder; } }
public static DevExpress.Web.Mvc.FileManagerSettings CreateFileManagerDownloadSettings()
{
var settings = new DevExpress.Web.Mvc.FileManagerSettings();
settings.SettingsEditing.AllowDownload = true;
settings.Name = "FileManager";
return settings;
}
}
}
提前谢谢。
答案 0 :(得分:0)
其他文件管理器设置看起来有效,但根文件夹路径声明似乎错误:
public const string Folder = @"~\";
从FileManagerExtension.DownloadFiles
documentation,rootFolder
参数包含指定FileManager扩展所绑定的根文件夹的值,因此您需要提供根文件夹的相对路径,例如:< / p>
public const string Folder = @"~/Files";
请注意,DownloadFiles
所需的相对路径不是像Windows文件路径那样使用反斜杠,而是使用斜杠(/)符号作为文件夹名称分隔符(即标记为~/
的应用程序根文件夹,同样的约定适用for Url.Content
path。。
在下载请求期间FileManagerExtension
根据从给定的相对URL路径转换的服务器文件路径检查文件可用性,如果路径格式错误或在服务器端无效,它将抛出FileNotFoundException。
答案 1 :(得分:0)
查看ASPxUploadControl / MVC UploadControl - FAQ指南以解决基于文件的控件/扩展程序可能出现的问题。特别是,确保为处理程序注册了相应的路由例外(p7):
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.ashx/{*pathInfo}");
...
}