我使用express.js 3.5.1
作为我应用的后端。它只是一个基本论坛,但我希望我的用户能够上传图片。我无法使用简单的表单上传,因为它会导致重定向。我发现的唯一解决办法似乎是socketio-file-upload。我只是为了上传图片而对包括socket.io
犹豫不决。有没有办法通过简单的XMLHttpRequest
或Ajax
请求执行此操作?或者也许是我没想到的另一种方法?
这是我目前必须处理来自表单的传入请求的服务器代码:
app.post('/save-image', checkSession, function(req, res)
{
actionLog( req.session.username, 'is trying to upload a file' );
var form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files)
{
console.log(files);
res.send({ error: 'not setup yet'
})
});
});
答案 0 :(得分:0)
您无法更改代码。只需在加载所有帖子时向客户端发送图片网址。
情景将是这样的:
1)您使用简单的POST请求上传图片。
2)在此运行AJAX调用之后,获取所有帖子,例如“/ posts”。
3)控制器返回所有帖子,例如:[{ id: 1, text: "asd", image: "yourhost.com/images/image.png"}, ...]
4)使用你的jquery或其他东西你重新加载视图。
答案 1 :(得分:0)
我遇到的问题与我的请求路由器有关,而不是请求本身。事实证明它不支持Multipart / Form-Data类型请求。
切换到http代理,一切都解决了。
节点模块Bouncy 不支持支持Multipart / Form-Data请求。