求助~客户端要获得服务器端的文件路径该怎么写?

第一次做一个导出excel的功能,我能在服务器的电脑上生成文件,但客户端下载的时候,路径该怎么写才能拿到那个文件呀?

阅读 2.5k
2 个回答

你的需求是下载服务端的 excel 文件,是吧。原理是将文件以字节流的形式返回给客户端(浏览器),客户端接收到响应,判断是字节流,会自动下载文件。

以 nodejs 下载文件为例,java 也差不多。

服务端代码:设置响应头,告诉客户端这是一个文件

fs.readFile("path/to/xx.xls", function(isErr, data){  
       if (isErr) {  
              res.end("Read file failed!");  
              return;  
        }  
        
        res.writeHead(200,{  
              // 告诉浏览器这是一个二进制文件
              'Content-Type': 'application/octet-stream',   
              // 告诉浏览器这是一个需要下载的文件  
              'Content-Disposition': 'attachment; filename=' + fileName, 
        });  
        
        res.end(data)  
})  

一般情况下有两种方式可以做
1,和你说的一样,服务端把文件生成好了给客户端文件的绝对路径,然后客户端进行下载
缺点是直接暴露了后台服务文件的地址,在某些情况下存在一定的风险
2,后台将处理好的文件转码,通过接口的形式把文件流传给前端,前端将文件流进行转码组成对应格式的文件

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题