【问题标题】:DotNetNuke File ManagementDotNetNuke 文件管理
【发布时间】:2011-10-25 03:44:16
【问题描述】:

我正在使用 DNN 5.6.2,我正在尝试构建一个自定义模块,用户可以在其中上传我对其运行验证的文件。如果文件有效,则将其保存。模块创建了一个根目录“DataValidation”,并且模块的每个实例都创建了一个子目录以保持内容井井有条。

我在创建目录时没有问题,但是当我上传到它们时,它要么因各种不同的错误而失败,要么奇怪的是文件上传正常,但在 DNN 数据库中它说它位于根级文件夹“DataValidation”中。我的代码或方法有问题吗?

    // Method is called to create the folders before writing to them
    public void verifyModuleFolderExists(string subfolderName)
    {
        bool moduleFolderExists = false;
        bool instanceFolderExists = false;

        ArrayList folders = FileSystemUtils.GetFolders(PortalId);

        foreach (FolderInfo folder in folders)
        {
            if (folder.FolderPath == "DataValidation/")
            {
                moduleFolderExists = true;
            }

            if (folder.FolderPath == subfolderName)
            {
                instanceFolderExists = true;
            }
        }

        if (!moduleFolderExists)
        {
            FileSystemUtils.AddFolder(PortalSettings, PortalSettings.HomeDirectoryMapPath, "DataValidation\\");
        }

        if (!instanceFolderExists)
        {
            FileSystemUtils.AddFolder(PortalSettings, PortalSettings.HomeDirectoryMapPath + "DataValidation\\", subfolderName);
        }
    }

    // Called on file upload
    public void saveUploadedFile(HttpPostedFile uploadedFile, string subFolderName)
    {
        string path = PortalSettings.HomeDirectoryMapPath + "DataValidation\\" + subfolderName + "/";
        string s = FileSystemUtils.UploadFile(path, uploadedFile);
    }

【问题讨论】:

    标签: .net module content-management-system dotnetnuke dotnetnuke-5


    【解决方案1】:

    我认为问题出在string path = ... 部分,您有“/”,实际上应该是“\”。这可能会导致它忽略路径中的文件夹部分。

    因此您的上传代码将更改为

    public void saveUploadedFile(HttpPostedFile uploadedFile, string subFolderName)
    {
        string path = PortalSettings.HomeDirectoryMapPath + 
                        "DataValidation\\" + subfolderName + "\\";
        string s = FileSystemUtils.UploadFile(path, uploadedFile);
    }
    

    【讨论】:

    • 这不是实际错误,而是相关的。问题是当我添加子文件夹时我忘了添加斜杠。我确实将所有内容都转换为反斜杠,以使其始终如一地工作。我之前混合了它们以强制上传。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 2010-11-26
    • 1970-01-01
    相关资源
    最近更新 更多