- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想将一个小图像从一台服务器移动到另一台服务器(都运行 Node )。当我搜索时,我还没有找到足够的东西。 This该帖子仍未得到答复。
当我开始试验时,我向第一台服务器写入了以下内容:
app.post("/move_img", function(req, res) {
console.log("post handled");
fs.readFile(__dirname + "/img_to_move.jpg", function(err, data) {
if (err) throw err;
console.log(data);
needle.post(server2 + "/post_img", {
data: data,
name : "test.jpg"
}, function(result) {
console.log(result);
res.send("ok");
});
});
});
这部分似乎正在工作,因为我可以在同一服务器中写入数据(使用 fs.writeFile)重新创建 img。
现在,当我尝试处理其他服务器中的帖子时,我遇到了问题。
服务器2:
app.post('/post_img', [ multer({ dest: './uploads/images'}), function(req, res) {
console.log("body ",req.body) // form fields
console.log("files ",req.files) // form files
res.send("got it");
}]);
这样我在文件中得到一个空对象,在正文中得到以下内容: { 'headers[Content-Type]': 'application/x-www-form-urlencoded', 'headers[Content-Length]': '45009' }
我想我可以使用 Busboy 作为替代方案,但我无法让它工作。欢迎任何建议、教程。
最佳答案
我使用以下代码解决了我的问题,
服务器1(使用针):
app.post("/move_img", function(req, res) {
console.log("post handled")
var data = {
image:{
file: __dirname + "/img_to_move.jpg",
content_type: "image/jpeg"}
}
needle.post(server2 + "/post_img", data, {
multipart: true
}, function(err,result) {
console.log("result", result.body);
});
})
服务器2:
app.use('/post_img',multer({
dest: '.uploads/images',
rename: function(fieldname, filename) {
return filename;
},
onFileUploadStart: function(file) {
console.log(file.originalname + ' is starting ...')
},
onFileUploadComplete: function(file) {
console.log(file.fieldname + ' uploaded to ' + file.path)
}
}));
app.post('/post_img', function(req, res) {
console.log(req.files);
res.send("File uploaded.");
});
服务器 1 的替代方案如下(使用表单数据模块):
var form = new FormData();
form.append('name', 'imgTest.jpg');
form.append('my_file', fs.createReadStream(__dirname + "/img_to_move.jpg"));
form.submit(frontend + "/post_img", function(err, result) {
// res – response object (http.IncomingMessage) //
console.log(result);
});
关于node.js - 使用node.js、needle、busboy/multer将文件从一台服务器发送到另一台服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30349885/
关于 connect-busboy的页面,我看到了这样的描述:Connect middleware for busboy,但这并没有告诉我任何信息(刚接触 node.js)。 busboy 之间有什么
所以,我有这个帖子请求,它曾经可以正常工作,但是一旦我升级到 Node 10,我似乎无法弄清楚为什么文件事件完全停止触发...... router.post('/uploadImage', authe
我的表格很简单。它使用 ng-flow处理文件上传: 选择图像后,ng-flow 将对目标路由执行 POST。似乎图像已发送,因为请求有效负载有很多类似的东
有一个busboy library 。通过一些 Promise 库,我可以使用以下代码将整个表单数据收集到一个对象中: var p = new Promise((resolve) => { let
我正在尝试使用react作为前端和busboy来将带有标题的图像上传到云存储,以处理后端的上传,但我似乎无法让它工作。当我提交表单时,我收到一条错误消息,指出 event.target.files[0
我有一个将文件上传到 mongodb 的过程,该过程运行良好。但我有一个大问题。如果由于某种原因连接丢失(客户端浏览器关闭、互联网连接不良、断电等),我没有任何指示,并且 Busboy/req 流不会
我有一个表单,需要在其中进行一些文件处理,这需要一些时间,所以我希望完成事件仅在处理完成后执行,现在 Node 正在处理文件,在处理文件并执行命令时, Node 如果找到完成事件,则会触发该事件。那么
是否可以使用 busboy 发出错误并进行处理? 例子: busboy.on('file', function(fieldname, file, filename, encoding, mimetyp
我在使用 Busboy 时遇到了奇怪的问题。我使用 Invoke-RestMethod 将文件从 powershell 上传到用 Node.js 编写的远程服务器。如果我使用流函数,代码可以正常工作。
我正在尝试使用 node.js 作为后端和 angular.js 作为前端将文件上传到服务器。我为此使用 express 4 + busboy。我在前端有一张表,我应该在其中显示我正在上传的所有文件。
我正在使用 busboy ,将我上传的文件写入缓冲区并对其执行一些验证(宽度、高度和文件大小)。一旦我发现上传有问题,我一生都无法弄清楚如何中止/停止流。 例如,如果我想要允许的最大文件大小为 500
我有 multipart/form-data 我要发布到快速端点 /data/upload,下面的表单标记: form(enctype="multipart/form-data", action="/
所以,几天前发生了一些事情,我的一个项目开始显示以下错误: TypeError: Busboy is not a constructor at /app/node_modules/connect-bu
如何使用 busboy 从“val”参数中检索单个字段值? .js app.post('/somewhere', (req, res) => { req.busboy.on('field',
我在上传文件时遇到问题。我有以下代码: App.js var bodyParser = require('body-parser'); var busboy = require('connect-bu
我正在尝试使用express和busboy在Node.js 4.x中实现文件上传。我已经能够上传文件并将其存储在 Azure Blob 存储中。 否,我想在将文件存储到 Azure 之前验证文件类型,
我正在尝试使用express和busboy在Node.js 4.x中实现文件上传。我已经能够上传文件并将其存储在 Azure Blob 存储中。 否,我想在将文件存储到 Azure 之前验证文件类型,
我对 Busboy 有点困惑模块。我不明白文件数据在哪里传输,因为它只接受请求 header 作为参数?!查看文档中的示例: var busboy = new Busboy({ headers: re
当通过 busboy 上传少量文件时,我遇到了事件问题。我的代码: app.post('/multiupload', function(req, res) { var fstream;
我是 Node.js 新手。我想做的是通过我的node.js 服务器将文件上传从网络浏览器流式传输到云存储。 我正在使用“express”、“request”和“busboy”模块。 var expr
我是一名优秀的程序员,十分优秀!