最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

在接收图像时处理客户端请求中的元数据

运维笔记admin8浏览0评论

在接收图像时处理客户端请求中的元数据

在接收图像时处理客户端请求中的元数据

在尝试处理上传的图片并将其写入文件时,我遇到了问题。通常这种方式非常好:

req.on('data', function (data) {
  body += data;
  wstream.write(data);
});
// end process data
req.on('end', function () {
  wstream.end();
});

在这种情况下,写入的文件头看起来像这样:

PNG ...后跟二进制数据。

但在某些情况下,写文件看起来像这样:

--72e245e8-38eb-41e8-9118-fc0405e4837c Content-Type:multipart / form-data Content-Disposition:form-data;命名=图像;文件名= picture.jpg;文件名* = UTF-8''picture.jpg

可以想象,在我将元数据删除为内容类型等之前,这些图片不再有效。

但在我这样做之后,图片功能齐全且可用。

我试图访问请求数据并调用toString方法来替换“不需要的”部分,但是我完全弄乱了该输出文件的内容编码,它变得无法使用。

data = data.toString(/---.*/g), "");

任何想法如何做到这一点?

回答如下:

我通过模块强大的帮助解决了我的问题。

var formidable = require('formidable');
var util = require('util');

form.parse(req, function(err, fields, files) {

    logger.debug("Received upload: " + util.inspect({fields: fields, files: files}));

});


form.on('fileBegin', function (name, file){

    file.path = "MyPathToDestinationFile";

    logger.debug("File  upload started for file '" + file.path + "'");

});


form.on('end', function() {

    logger.debug("File upload finished for file");

    // Send response to client

});


form.on('error', function(err) {

    logger.debug("Failed to finish upload due to '" + err + "'");

    // Send error to client

});
发布评论

评论列表(0)

  1. 暂无评论