获取umbraco上传文件字段的上传KB / MB值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取umbraco上传文件字段的上传KB / MB值相关的知识,希望对你有一定的参考价值。

尝试在umbraco上传上传字段的KB / MB值。

如果我们得到项目的文件大小,但我想要上传字段@ item.GetPropertyValue(“uploadPDF”)的文件大小,下面的代码工作正常,我该怎么做?

    @foreach (var item in selection){

       // Get uploaded file size in MB
       var bytes = Convert.ToInt64(@item.GetPropertyValue<string>("umbracoBytes"));
       var x = ((Math.Round(Convert.ToDecimal(@bytes) / 1048576, 1)).ToString() + " MB");
       var y = ((Math.Round(Convert.ToDecimal(@bytes) / 1024, 1)).ToString() + " KB");
       var fileSize = (bytes >= 1048576) ? x : y;

       // Loop through items and iterate 
       var pdf = @item.GetPropertyValue("uploadPDF");

           <div class="full-div">
               <a href="@pdf" target="_blank">
                  <img src="/images/pdf_icon.png" alt="">
                    @item.Name (@fileSize) 
                    // Get the file size of the pdf field instead of the item field
               </a>
           </div>
         }
答案

如果您在Umbraco中使用内置媒体类型,只要您使用umbracoBytesFile媒体类型,就应该能够从Image属性中获得大小。

然而,听起来您的属性是直接存在于文档类型上的Umbraco.UploadField,这意味着它没有可用的文件大小。

在你的情况下,我会在你的类型中添加一个名为:uploadPDFbytes的属性,然后创建一个IApplicationHandler并挂钩进入Saving事件。然后在保存存储PDF文件的内容时 - 我会确保此处理程序检查正在保存的文件的文件大小并将其放入uploadPDFbytes属性(非常类似于Umbraco对其自己的媒体上传所做的操作)。现在,您可以通过检查uploadPDFbytes属性来获取上载的PDF的文件大小。

以上是关于获取umbraco上传文件字段的上传KB / MB值的主要内容,如果未能解决你的问题,请参考以下文章

关于FileUpload控件上传文件大小限制问题

ASP.NET 上传文件最大值调整

Umbraco 上传文件到另一个文件夹,而不是media files

我无法将大 (> 2GB) 文件上传到 Google Cloud Storage 网络用户界面

Umbraco 4.11.3:客户端表单上传(多部分/表单数据)给出 404

asp.net(c#)如何上传大文件?