相关疑难解决方法(0)

在角度应用中显示blob(.pdf)

我一直在尝试显示pdf文件,我从$http.post响应中获取blob .例如,pdf必须在应用程序中显示<embed src>.

我遇到了几个堆栈帖子,但不知怎的,我的例子似乎不起作用.

JS:

根据这份文件,我继续尝试......

$http.post('/postUrlHere',{myParams}).success(function (response) {
 var file = new Blob([response], {type: 'application/pdf'});
 var fileURL = URL.createObjectURL(file);
 $scope.content = fileURL;
});
Run Code Online (Sandbox Code Playgroud)

根据我的理解,fileURL创建一个临时URL,博客可以将其用作参考.

HTML:

<embed src="{{content}}" width="200" height="200"></embed>
Run Code Online (Sandbox Code Playgroud)

我不知道如何在Angular中处理这个问题,理想的情况是(1)将它分配给范围,(2) '准备/重建'blob到pdf (3)将其传递给HTML使用<embed>因为我想要在应用程序中显示它.

我已经研究了一天以上但不知何故我似乎无法理解它在Angular中是如何工作的......让我们假设那里的pdf查看器库没有选项.

pdf blob angularjs

104
推荐指数
5
解决办法
23万
查看次数

ZipArchive给出了意外的数据结束错误

我正在尝试使用一些字节数组数据动态创建一个zip流,并通过我的MVC动作下载.

但是,在Windows中打开时,下载的文件总是会出现以下损坏的错误.

在此输入图像描述

当我尝试从7z提取时出现此错误

在此输入图像描述

但请注意,从7z中提取的文件未损坏.

我正在使用ZipArchive,以下是我的代码.

    private byte[] GetZippedPods(IEnumerable<POD> pods, long consignmentID)
    {
        using (var zipStream = new MemoryStream())
        {
            //Create an archive and store the stream in memory.                
            using (var zipArchive = new ZipArchive(zipStream, ZipArchiveMode.Create, true))
            {
                int index = 1;
                foreach (var pod in pods)
                {                        
                    var zipEntry = zipArchive.CreateEntry($"POD{consignmentID}{index++}.png", CompressionLevel.NoCompression);                       
                    using (var originalFileStream = new MemoryStream(pod.ByteData))
                    {
                        using (var zipEntryStream = zipEntry.Open())
                        {
                            originalFileStream.CopyTo(zipEntryStream);
                        }
                    }
                }
                return zipStream.ToArray();
            }
        }
    }

    public ActionResult DownloadPOD(long consignmentID) …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc system.io.compression

16
推荐指数
2
解决办法
3314
查看次数

客户端下载服务器生成的zip文件

在有人说"复制"之前,我只是想确保,人们知道,我已经审查了这些问题:

1)使用angular和php,不知道这里发生了什么(我不知道PHP):下载zip文件并从angular方法触发"保存文件"对话框

2)无法得到任何答案:如何使用angular下载zip文件

3)这个人已经可以下载,这是我想要弄清楚的一点: 从按钮动作触发的角度下载外部zip文件

4)没有答案: 在nodejs中从服务器下载.zip文件

5)我不知道这甚至是什么语言:https: //stackoverflow.com/questions/35596764/zip-file-download-using-angularjs-directive

鉴于这些问题,如果这仍然是重复,我道歉.这是这个问题的另一个版本.

我的1.5.X客户端给我一个标题列表,每个标题都有一个相关的文件.我的节点4.X/Express 4.X服务器获取该列表,获取文件位置,创建一个zip文件,使用来自npm的express-zip,然后将该文件流回到响应中.然后,我希望我的客户端启动浏览器的"下载文件"选项.

这是我的客户端代码(Angular 1.5.X):

function bulkdownload(titles){
    titles = titles || [];
    if ( titles.length > 0 ) {
        $http.get('/query/bulkdownload',{
            params:{titles:titles},
            responseType:'arraybuffer'
        })
        .then(successCb,errorCb)
        .catch(exceptionCb);
    }

    function successCb(response){
        // This is the part I believe I cannot get to work, my code snippet is below
    };

    function errorCb(error){
            alert('Error: ' + JSON.stringify(error));
    };

    function exceptionCb(ex){
            alert('Exception: ' + JSON.stringify(ex));
    };
};
Run Code Online (Sandbox Code Playgroud)

带有express-zip的节点(4.X)代码,https: …

javascript zip node.js express angularjs

8
推荐指数
3
解决办法
2万
查看次数