1

我是 C1 的新手,我正在开发一个简单的网站,现在我需要添加文档页面,其中列出了一堆 PDF 文件和文档视图页面以在 Issuu 播放器中显示 PDF。

首先,我将要求第 1 部分:

a) 如何上传 PDF 文档?我的意思是如何创建一个包含文件上传框和描述框的上传 PDF 页面,如果它与后端界面隔离,那就太好了。

b) 如何创建动态列出上传的 PDF 文档的文档页面?

4

1 回答 1

2

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>
于 2012-06-11T12:47:03.337 回答