内置的 dnn 上传控件是专门为将文件上传到 dnn 文件系统而设计的——但老实说,它很难使用。
它对您要对文件执行的操作做了很多假设,并且作为其过程的一部分,它会自动在 dnn 文件系统索引中注册新文件。
对于缩略图上传或任何此类花哨的东西,它也不是真正的理想选择——因为它没有文件大小管理或缩放和裁剪的能力——它已经被承诺过几次,但迄今为止还没有实现。
最重要的是,当涉及到实际存储上传文件的位置时,它有自己的想法 - 这意味着您最好查看可以更轻松控制的第 3 方上传器。
FWIW - 每个 dnn 安装都会安装完整版的 Telerik asyn 上传库 - 您需要手动设置它,但这并不难。
<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
将包含相对于您的网站域的 url
thisPHYSICAL
将包含文件在您的服务器上的物理位置。