visual studio - dnn filepickeruploader control



我正在为DotNetNuke 7开发一个模块。我希望能够上传一个缩略图在目录条目的图像。在我的模块的编辑视图中管理位置控制并上传和选择文件,但是当我构建项目时,我得到以下错误:

C:dnndotnetnukeDesktopModulesEventCatalog edit . asx .designer.cs(103,38,103,41):错误CS0234:类型或命名空间名称'Web'不存在于命名空间' dotnetnuke '(您是否缺少程序集引用?)

我也不知道如何得到后端选择的文件,以保存url到数据库。当我输入控件的ID时,VS会识别它,但智能感知不会提供任何线索作为可能的选项。

谁能告诉我如何修复上述错误,如果可能的话,指向我对这个控制的概述/教程。我在谷歌上搜索了很多,但是什么也没找到

首先,您可能需要向DotNetNuke添加一个程序集引用。Web到您的项目。一旦有了这些,它可能也会对你缺乏智能感有所帮助。

看起来与所选URL交互的主要方式是通过FileID属性。控件本身将管理将文件保存到所选的FolderPath(这可能是用户可以更改的,也可能不是)。

但是,你是对的,没有关于如何使用控件的好的资源。最好的"教程"可能是通过查看DotNetNuke核心代码,看看核心如何使用控件。

内建的dnn上传控件是专门为上传文件到dnn文件系统而设计的-但是说实话,它的工作非常难看。

它对你想对文件做的事情做了很多假设,并且作为其进程的一部分,它会自动在dnn文件系统索引中注册新文件。

对于缩略图上传或任何类似的花哨的东西来说,它也不是很理想——因为它没有文件大小管理或缩放和裁剪的功能——它已经被承诺过几次,但到目前为止还没有最终实现。

最重要的是,当它实际存储上传文件时,它有一点自己的想法-这意味着你最好看看第三方上传器,你可以更容易地控制。

FWIW -有一个完整版本的telerik asynn上传库安装在每个dnn安装-你需要手动设置它,但这并不难。

<dnn:DnnAsyncUpload></dnn:DnnAsyncUpload>为标记基本结构,其功能与<telerik:RadAsyncUpload></telerik:RadAsyncUpload>相当

这里有文档http://www.telerik.com/help/aspnet-ajax/asyncupload-overview.html

说了这么多,如果你想坚持使用dnn文件选择器-这段代码将让你找到dnn上传文件的文件对象。

String thisURL = "";
String thisPHYSICAL = "";
Int32 itest001 = thisControl001.FileID;
if ( itest001 > 0 )
{
    var thisFILE = (DotNetNuke.Services.FileSystem.FileInfo)FileManager.Instance.GetFile(itest001);
    thisURL = FileManager.Instance.GetUrl(thisFILE );
    thisPHYSICAL = thisURL.PhysicalPath;
}

thisURL将包含一个相对于您的网站域名的urlthisPHYSICAL将包含文件在服务器上的物理位置。

相关内容

  • 没有找到相关文章

最新更新