编辑
我发现了自己的错误。 我收到“ TypeError:无法提取”,因为我没有在控制器函数中发回任何东西。因此,用res.json({“ message”:“ File Uploaded”})替换console.log(“ OK”);解决这个问题。 但是,我的图像仍然没有上传,这是因为我没有在要存储图像的路径中使用__dirname。我在app.js文件中设置了__dirname。
我正在尝试使用express-fileupload npm软件包在服务器中上传文件。使用Swagger UI进行测试时,出现以下错误:“ TypeError:无法提取”,并且我的文件未在我的public / images文件夹中上载
这是我的招摇:
/images:
x-swagger-router-controller: images
post:
summary: Uploads a file.
operationId: upload
consumes:
- multipart/form-data
parameters:
- in: formData
name: upfile
type: file
description: The file to upload.
responses:
"200":
description: Success
schema:
$ref: "#/definitions/SuccessResponse"
default:
description: Error
schema:
$ref: "#/definitions/ErrorResponse"
这是我的图片控制器:
function upload(req, res, next) {
let uploadFile = req.files.upfile;
let fileName = uploadFile.name;
uploadFile.mv( `../../public/images/${fileName}`, function (err) {
if (err) {
console.log("error", err)
}
console.log("OK")
})
}
module.exports = {
upload,
};
我的“确定”消息确实会在我的控制台中打印出来。
有人知道如何解决吗?
答案 0 :(得分:0)
这是因为有时您的IIS绑定的HTTPS SSL证书会自动转到“ 未选中”。see here,因此您必须再次手动选择IIS Express开发证书的SSL证书。
以下,我提到了操作方法以及附件和图像:
打开IIS单击“默认网站”
在右侧角落,您将看到一些设置,单击“绑定”
您将获得一个“站点绑定”窗口
然后您将获得http和https详细信息
,其中单击“ https”并单击“编辑”
然后您将获得另一个窗口编辑站点绑定
在该窗口中检查SSL证书
如果未选择SSL证书,请选择IIS Express开发证书
然后停止并启动IIS
没问题。