我是 C1 的新手,我正在开发一个简单的网站,现在我需要添加文档页面,其中列出了一堆 PDF 文件和文档视图页面以在 Issuu 播放器中显示 PDF。
首先,我将要求第 1 部分:
a) 如何上传 PDF 文档?我的意思是如何创建一个包含文件上传框和描述框的上传 PDF 页面,如果它与后端界面隔离,那就太好了。
b) 如何创建动态列出上传的 PDF 文档的文档页面?
我是 C1 的新手,我正在开发一个简单的网站,现在我需要添加文档页面,其中列出了一堆 PDF 文件和文档视图页面以在 Issuu 播放器中显示 PDF。
首先,我将要求第 1 部分:
a) 如何上传 PDF 文档?我的意思是如何创建一个包含文件上传框和描述框的上传 PDF 页面,如果它与后端界面隔离,那就太好了。
b) 如何创建动态列出上传的 PDF 文档的文档页面?
1)你有存储PDF的媒体文件夹路径,例如“/Uploads/PDF Documents”
以下是如何将 HttpPostedFile 上传到C1 Media Archive的示例代码:
public static void UploadFileToMediaArchive(HttpPostedFile file, string mediaFolderPath)
{
try
{
WorkflowMediaFile mediaFile = new WorkflowMediaFile();
mediaFile.FileName = file.FileName;
mediaFile.FolderPath = mediaFolderPath;
mediaFile.Title = "";
mediaFile.Description = "";
mediaFile.Culture = Thread.CurrentThread.CurrentCulture.Name;
mediaFile.Length = file.ContentLength;
mediaFile.MimeType = MimeTypeInfo.GetCanonical(file.ContentType);
if (mediaFile.MimeType == MimeTypeInfo.Default)
{
mediaFile.MimeType = MimeTypeInfo.GetCanonicalFromExtension(System.IO.Path.GetExtension(mediaFile.FileName));
}
using (System.IO.Stream readStream = file.InputStream)
{
using (System.IO.Stream writeStream = mediaFile.GetNewWriteStream())
{
readStream.CopyTo(writeStream);
}
}
IMediaFile addedFile = DataFacade.AddNew<IMediaFile>(mediaFile);
}
catch (Exception ex)
{
Composite.Core.Log.LogError("UploadFileToMediaArchive", ex.Message);
}
}
2) 要在页面上显示 PDF 文件,您可以创建一个简单的 XSLT 函数,然后使用“以数据为中心”的函数调用“GetIMediaFileXml”并使用 MediaFolderFilter 过滤器。下面是“GetIMediaFileXml”函数调用的源代码:
<f:function name="Composite.Data.Types.IMediaFile.GetIMediaFileXml" localname="GetIMediaFileXml">
<f:param name="PropertyNames">
<f:paramelement value="KeyPath" />
<f:paramelement value="CompositePath" />
</f:param>
<f:param name="Filter">
<f:function name="Composite.Data.Types.IMediaFile.MediaFolderFilter">
<f:param name="MediaFolder" value="MediaArchive:7dce5da6-ae73-417a-86a3-dfb7a3f05cf3" />
</f:function>
</f:param>
</f:function>