如何让用户从客户端下载整个应用程序?

时间:2016-04-05 19:09:29

标签: file heroku github download client

所以,我有一个在heroku中托管的Web应用程序,当我更新我的github存储库时会自动更新。我想让用户从客户端下载所有应用程序文件及其文件夹,图像等作为zip文件,以便他可以在本地离线运行。在强制将其下载到浏览器上之前,我还想在该zip文件中添加一个包含用户注释的文件。

我找到了一种方法,可以通过将他重定向到github来实现(但实际上并没有将他重定向到那里,它只会强制从github下载一个zip文件):

window.location.replace("https://github.com/foo/FOO/archive/master.zip");

但是这个解决方案并不适用于我,因为我想在该zip文件中添加一个将在用户下载请求时创建的其他文件

有没有人有解决方案? 有没有办法通过向herokku请求接收文件并使用jszip打包它们来做到这一点?

1 个答案:

答案 0 :(得分:0)

我使用github的服务,JSZipUtils和jszip找到了解决方案。以下是可能有用的代码:

var content = null;  

JSZipUtils.getBinaryContent("https://github.com/foo/FOO/archive/master.zip",   function(err, data) {
   if(err) {
     throw err; // or handle err
   }
   var zip = new JSZip(data);

   // to remove a not needed file
   zip.remove("CWAPP-master/abc.js");  

   // to add a custom file              
   zip.file('CWAPP-master/myClientSideFile.js',file);

   content = zip.generate({type:"blob"});
   saveAs(content, 'myZip'); // force download

});