如何配置Cloudinary接受所有文件类型?.gb格式Gameboy ROM上传遇阻
解决Cloudinary上传.gb(Gameboy ROM)文件的400错误问题
你遇到的这个Invalid image file错误,核心原因是Cloudinary的uploader.upload()方法默认会把上传内容当作图片类型处理,而.gb属于非媒体类的原始文件,自然会被判定为无效。
关键修复步骤
你需要在cloudinary.uploader.upload()的配置参数里明确指定resource_type: 'raw',而不是在multer的upload.single()中设置(那个位置的配置对Cloudinary的资源类型判定不起作用)。
修正后的代码应该是这样的:
server.post('/publish', upload.single('gamefile'), (req, res, next) => { cloudinary.uploader.upload(req.file.path, { resource_type: 'raw' }, // 这里才是正确的设置位置 function(result) { console.log(result); } ); });
不同资源类型的适用场景
给你整理下Cloudinary主要资源类型的对应范围,方便后续上传其他文件时参考:
image:默认类型,适用于所有图片格式(JPG、PNG、WebP、GIF等)video:适用于各类视频文件(MP4、MOV、AVI等)raw:覆盖所有非媒体类文件,比如ROM、文档、压缩包、配置文件等
你之前提到已经按照官方指南设置过resource_type: 'raw',应该是配置位置不对,调整到upload方法的参数里后,应该就能正常上传.gb文件了。等你收到Cloudinary官方回复后,也可以补充更多细节,但当前这个调整应该能解决你的400错误。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

