Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 斜纹棉布+;快车_Node.js_Express_Twilio_Content Type_Multer - Fatal编程技术网

Node.js 斜纹棉布+;快车

Node.js 斜纹棉布+;快车,node.js,express,twilio,content-type,multer,Node.js,Express,Twilio,Content Type,Multer,我正在尝试制作一个使用TwilioAPI发送彩信的web应用程序。从我的本地机器上传一个图像效果很好。我正在使用保存图像 使用multer保存图像后,我想使用Twilio通过彩信发送图像,但Twilio监视器中不断出现此错误 错误:12300-内容类型无效 这是我的表格: <form method="post" encType="multipart/form-data" action="/upload"> <input type="file" name="imageFi

我正在尝试制作一个使用TwilioAPI发送彩信的web应用程序。从我的本地机器上传一个图像效果很好。我正在使用保存图像

使用multer保存图像后,我想使用Twilio通过彩信发送图像,但Twilio监视器中不断出现此错误 错误:12300-内容类型无效

这是我的表格:

<form method="post" encType="multipart/form-data" action="/upload">
    <input type="file" name="imageFile" />
    <button type="submit">Send</button>
</form>

如您所见,我将内容类型包括在
client.messages.create
中。我还希望每次上传图像时不要被重定向到
/upload
路线。

这里是Twilio福音传道者。Twilio在该错误消息中说,它从您提供的mediaURL获得的HTTP响应有一个我们不理解的内容类型头值。如果你卷曲这个URL,返回的内容类型头值是多少?@devinReader我得到的是text/html。它不应该是
image/png
,因为我在
mediaContentType
中手动设置了它吗?您必须配置用于服务url“{file}”的任何服务器和/或应用程序框架,以使用适当的内容类型头来服务该url。据我所知,mediaContentType不是twilio在使用创建功能让twilio发送彩信时会识别的参数。这就是我建议使用curl请求URL的原因。如果curl请求没有显示正确的内容类型,twilio也不会得到它。@devinReader我怎么做?我是个新手,昨天修好了!我不需要“上传”的链接,因为我是作为一个静态文件lol服务。谢谢:)Twilio福音传道者在这里。Twilio在该错误消息中说,它从您提供的mediaURL获得的HTTP响应有一个我们不理解的内容类型头值。如果你卷曲这个URL,返回的内容类型头值是多少?@devinReader我得到的是text/html。它不应该是
image/png
,因为我在
mediaContentType
中手动设置了它吗?您必须配置用于服务url“{file}”的任何服务器和/或应用程序框架,以使用适当的内容类型头来服务该url。据我所知,mediaContentType不是twilio在使用创建功能让twilio发送彩信时会识别的参数。这就是我建议使用curl请求URL的原因。如果curl请求没有显示正确的内容类型,twilio也不会得到它。@devinReader我怎么做?我是个新手,昨天修好了!我不需要在链接中“上传”,因为我将其作为静态文件lol提供。谢谢:)
var storage = multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, '/uploads');
    },
    filename: function (req, file, cb) {
        cb(null, `${file.fieldname}-${Date.now()}.png`);
    }
});
var upload = multer({ storage: storage });

app.post('/upload', upload.single('imageFile'), function (req, res, next) {
    var user = ref.getAuth();
    var file = req.file.filename;
    client.messages.create({
        from: twilioNumber,
        to: 1234567890,
        mediaContentType: 'image/png',
        mediaUrl: `http://example.com/uploads/${file}`
    }, function(err, message) {
       if(err) {
          console.log('Error!', err);
       } else {
          console.log('Message SID:', message.sid);
       }
   }
});