Salesforce中用Apex+JSZip打包下载多个附件
- 12月
- 10
- Posted by Lin
- Posted in APEX, Open Source, Visualforce
在Salesforce开发过程中,是否碰到过需要Zip打包附件或者PDF文件并下载,这一功能的时候?
遗憾的是Apex并不支持Zip的功能,所以一般我们都通过Heroku或AWS等外部接口进行打包来解决这一问题。 实际上仅在Salesforce上我们也能进行文件打包下载。
本文旨在分享以Apex+JSZip的方式来实现这一功能。
程序的处理流程,大概为以下几个步骤。
1.JS端通过WebService获取要下载的文件的Blob数据。
2.使用JSZip类库进行文件压缩,并生成Zip文件。
3.生成的Zip文件上传到Apex中、插入到Document对象里。
4.通过获取到的Document的ID,跳转到下载页面执行下载。
开始组装试试吧。
Enjoy It!
遗憾的是Apex并不支持Zip的功能,所以一般我们都通过Heroku或AWS等外部接口进行打包来解决这一问题。 实际上仅在Salesforce上我们也能进行文件打包下载。
本文旨在分享以Apex+JSZip的方式来实现这一功能。
程序的处理流程,大概为以下几个步骤。
1.JS端通过WebService获取要下载的文件的Blob数据。
2.使用JSZip类库进行文件压缩,并生成Zip文件。
3.生成的Zip文件上传到Apex中、插入到Document对象里。
4.通过获取到的Document的ID,跳转到下载页面执行下载。
开始组装试试吧。
上传测试文件到附件中
向Account中上传两个测试用的附件(apex PDF.pdfとapex Word.docx)。创建Apex类WS_Util与WS_ZipUtil
WS_Util.cls
WS_ZipUtil.cls
创建两个Static Resource类库,jQuery与JSZip
添加jQuery与JSZip这两个js文件到Static Resource中。新建VF页面
实际下载试试
Zip文件可以正常下载咯~!SourceCode
Download from Github最近更新
如果你在搜寻一种只通过Apex进行Zip压缩文件的方式,你可以参考这边文章 : Salesforce中仅使用Apex进行打包下载多个附件Enjoy It!
近期文章
- Salesforce DevTools Release Notes (version 3.10.0) – mass edit custom fields on lightning
- Salesforce DevTools Release Notes (version 3.9.0)- Object Fields, SOQL Query Editor
- Salesforce DevTools Release Notes (version 3.8.0)
- Salesforce DevTools的开发者用户突破10,000名!THANK YOU!
- Lightning Component中使用Promise处理Apex服务端请求
Top Posts
- Salesforce DevTools – Saleforce开发者必备Chrome扩展 - 219.6K views
- Date format 与 DateTime format - 204K views
- Salesforce批量编辑 (Chrome扩展) – 在任何标准视图上进行批量插入, 拷贝, 更新, 删除, 支持Classic与Lightning! - 158.4K views
- 用Sublime Text 3架设Salesforce的快速开发环境 - 122.3K views
- 编写一个可被计划执行的Batch Apex - 118.8K views
分类目录
- APEX
- 应用
- Custom Label
- Custom Metadata
- Custom Setting
- Design & UI
- 交流会
- Heroku
- iOS & Object-c
- Lightnint Component
- Linux & Mac OS
- Metadata API
- Node.js
- Open Source
- Other
- PHP Framework
- Release Notes
- REST API
- Salesforce
- Salesforce DevTools
- Salesforce DX
- SOQL
- Tooling API
- Unit Tests
- Validation Rule
- Visualforce
- WordPress
您必须登录才能发表评论。