Express 为图像文件夹提供服务的最佳方式是什么?快速服务器
我做了一个网站的管理面板 管理员使用multer将数据和图像上传到服务器 然后我想把这些图像发送到前端。作为静态文件,下载图像而不是显示,所以url不会在html中显示任何内容 我找到了一个解决办法,但我认为这不是正确的。因为它有点慢 信息: 每个图像的大小:2-3 MB PHP中的公共端->每幅图像需要15秒 vue js中的管理端前端->每个图像需要6秒,加载50秒 20张图片 express服务器Ubuntu 16.04.3 x64中的Api 大小 1 vCPU 2GB/25GB磁盘 解决方案:Express 为图像文件夹提供服务的最佳方式是什么?快速服务器,express,server,multer,Express,Server,Multer,我做了一个网站的管理面板 管理员使用multer将数据和图像上传到服务器 然后我想把这些图像发送到前端。作为静态文件,下载图像而不是显示,所以url不会在html中显示任何内容 我找到了一个解决办法,但我认为这不是正确的。因为它有点慢 信息: 每个图像的大小:2-3 MB PHP中的公共端->每幅图像需要15秒 vue js中的管理端前端->每个图像需要6秒,加载50秒 20张图片 express服务器Ubuntu 16.04.3 x64中的Api 大小 1 vCPU 2GB/25GB磁盘 解决
router.get('/photos', async (req,res) => {
let path = req.query.path;
path = `../../uploads/${path}`
if(path){
fs.readFile(resolve(__dirname, path), function (err, content) {
if (err) {
res.writeHead(400, {'Content-type':'text/html'})
console.log(err);
res.end("No such image");
} else {
//specify the content type in the response will be an image
res.writeHead(200,{'Content-type':'image/jpg'});
res.end(content);
}
});
}
})`
您可以将文件夹作为- 将以下内容添加到express的
app.js
文件中。这里,文件夹my_images
与项目中的app.js
位于同一级别
app.use(
"/photos",
express.static(path.join(__dirname, "my_images/"))
)
查看。它有多慢?当提供多大尺寸的图像时,从哪个服务器到哪个客户端,在哪个浏览器中渲染?“你希望它的速度有多快?”下划线编辑。浏览器是Chrome,我尝试过这个,当我转到url浏览器时,自动下载img而不是显示。它是否必须与app.js处于同一级别?您需要从前端向
/photos
发送请求以获取这些图像的内容。您可以使用javascript中的fetch()。如果您直接从浏览器转到上面的URL,则图像将下载到您的计算机,因为这是您要求它执行的操作。向服务器发送请求并下载响应。