在visualforce页面中读取zip附件

时间:2014-03-05 11:26:53

标签: salesforce visualforce

大家好我正在开发一个关于salesforce的应用程序。 我想在visualforce页面中读取zip附件中的文件内容,但不解压缩zip文件。 我怎样才能做到这一点?有没有办法做到这一点?

2 个答案:

答案 0 :(得分:2)

已修改问题的更新:

请看看安德鲁·福塞特的Handling Office Files and Zip Files in Apex – Part 2


有关于如何使用存储在附件中的图像执行此操作的基本知识文章。见How can I Display Base64 Data on page layout?

在此示例中,AttachmentID通过查询字符串参数传递,但您可以查找它,但最适合您的要求。

Visualforce页面:

<apex:page controller="ViewImage" cache="true">
      <img src="data:{!att.ContentType};base64,{!image}" />
</apex:page>

控制器:

public class ViewImage {
      public Attachment att {
            get {
                  if (att == null) {
                        String id = ApexPages.currentPage().getParameters().get('AttachmentID');
                        att = [SELECT Body, ContentType, Name FROM Attachment WHERE ID = :id];
                  }
                  return att;
            }
            private set;
      }
      public String image {
            get {
                  return EncodingUtil.Base64Encode(att.body);
            }
      }
}

答案 1 :(得分:1)

大家,我使用JSzip库实现了这一点,这是我的代码 -

在apex页面中,我编写了javascript函数 -

function viewContent(){
        var zip = null;
        var zipFileName = null; 
        var zipFileNames = null;
        data = "{!contentAsText}";
        zip = new JSZip(data, {base64:true});
            zipFileName = 'files.zip';
            zipFileNames = [];
            for(var zipfileName in zip.files){
                zipFileNames.push(zipfileName); 
         if(zipfileName == 'index.html'){  
         var file = zip.files[zipfileName];
         var data = file.data;
         document.getElementById('contentdiv').innerHTML = data;
         //var data = JSZipBase64.encode(file.data);
         }
         }

在控制器中 -

public String contentAsText {get;set;}

 List<Attachment> atts = [Select Id, Body from Attachment where name='files.zip' limit 1];
       contentAsText = EncodingUtil.base64Encode(atts[0].Body);

此链接可以帮助您 -

http://andyinthecloud.com/2012/12/09/handling-office-files-and-zip-files-in-apex-part-2/