无法打开从我的网站下载的zip文件

时间:2018-10-13 15:38:34

标签: javascript node.js reactjs express download

我需要从我的node js express应用程序下载一个zip文件。这是我在服务器上用来将文件发送到浏览器的代码:

  app.get('/files', async (req, res) => {
        try {
            const file  = await service.getFile('http://localhost:8080/myapp/test.zip');
            res.setHeader('Content-Type', 'application/octet-stream');
            res.setHeader('Content-disposition', 'attachment; filename=test1.zip');
            res.send(file);
        } catch (error) {
            res.status(500).json({ error: error.message });
        }
    });

Web客户端(反应)的代码为:

import {Button} from 'semantic-ui-react';

const axios = require('axios');
const FileDownload = require('js-file-download');

const handleClick = async () => {
    const {data} = await axios({
        method: 'get',
        url: 'http://localhost:4000/files',
        headers: {'Authorization': 'XXXXXX'},
        responseType: 'stream'
    });
    FileDownload(data, 'file.zip');
}

export default () => <div><Button onClick={() => handleClick()}>Download file</Button></div>

该zip文件已正确下载,我可以看到它的大小实际上是服务器中源文件的大小,但是当我尝试在Mac上解压缩时,我得到:Error(1),不允许进行操作。< / p>

有人可以告诉我我想念什么吗?

谢谢!

0 个答案:

没有答案