2017-02-08 3 views
0

MVCFileManagerExtension(DevExpress v14.2)を使用しています。ファイルをダウンロードしようとしたときに「ファイルが見つかりません」というエラーが表示されました。DevExpress FileManager経由でファイルをダウンロードするときに「ファイルが見つかりません」というエラーが発生しました

これが私の見解コードです:

@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

その他のファイルマネージャの設定有効になりそうだが、ルートフォルダのパス宣言は間違っているようだ:

public const string Folder = @"~\"; 

FileManagerExtension.DownloadFilesdocumentationから、rootFolderパラメータは、したがって、FileManagerの拡張子がバインドされているルートフォルダを指定する値が含まれていますあなたは、例えば、ルートフォルダの相対パスを指定する必要があります。代わりに、Windowsのファイルパスのようにバックスラッシュを使用しての

public const string Folder = @"~/Files"; 

注意、により必要な相対パスをは、フォルダ名の区切り記号としてスラッシュ(/)記号を使用します。 とマークされたアプリケーションルートフォルダ、同じ規則がUrl.Contentパスに適用されます)。

ダウンロード要求中に、FileManagerExtensionは、特定の相対URLパスから変換されたサーバーファイルパスに基づいてファイルの可用性をチェックします。サーバー側でパスが不正または無効な場合は、FileNotFoundExceptionがスローされます。

+0

残念ですが動作しません。この新しいコードフォルダ= @ "〜/ Content/Manuals" –

0

ASPxUploadControl/MVC UploadControl - FAQのガイドで、ファイルベースのコントロール/拡張機能の問題を解決してください。対応するルーティング例外がハンドラ(p7)に登録されていることを確認してください:

public static void RegisterRoutes(RouteCollection routes) { 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    routes.IgnoreRoute("{resource}.ashx/{*pathInfo}"); 
    ... 
} 
関連する問題