我想通过node.js下载.ico文件,发现普通的图片地址可以正常的访问下载,但是.ico文件地址下载下来出错,求大神帮忙看看问题。
app.js
const express = require("express")
const app = express()
const request = require("request")
const fs = require("fs")
const Url = require("url")
const path = require("path")
const port = 3000
const faviconPath = path.join(__dirname, "favicon")
function downloadFile(uri, filename) {
request(uri).pipe(fs.createWriteStream(filename))
}
app.get("/", (req, res) => {
let url = req.query.url
let urlObj = Url.parse(url)
let fileName = (urlObj.hostname || "default") + ".ico"
let filePath = path.join(faviconPath, fileName)
let uomg = "https://api.uomg.com/api/get.favicon?url="
downloadFile(uomg + url, filePath)
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
我把下载地址换成普通的地址可以正常的下载,但是ico图片地址下载了之后无法访问。
测试ico地址:https://api.uomg.com/api/get....
瞅了一下,响应是没问题的,但是响应被 Gzip 压缩了,你需要改成:
这样输出的文件就正常了,其他一些问题自己再检查检查。