当前位置: 首页 > 知识库问答 >
问题:

角和节点:发送图像

璩和璧
2023-03-14
 handleFileInput(files: FileList) {
    var filename = files.item(0);
    this.upload(filename).subscribe();
};


upload(fileToUpload: File){   
  console.log(fileToUpload); //Here I can see all the image data     

  let obj = {
        imageData: fileToUpload,
        imageID: "Sample"
  };

  return this.http.post<any>(url, obj ,{});
}
private initAPI(): void {
    this.router.route('/file')
        .post((req, res) => {
            console.log(req);   //No "body" data             
       });
}
body:
   imageData: Object {}
   imageID: "Sample"

ImageData为空。对如何发送图像有什么建议吗?

谢了。

共有1个答案

巫马劲
2023-03-14

这可以在angular端使用formData来完成,在node端使用multer来上传文件。

角部

component.html

<div>
  <div>
    <input type="file" (change)="createFormData($event)">
  </div>
  <button (click)="upload()">Upload</button>
</div>
  selectedFile: File = null;
  fd = new FormData();

  constructor(private http: HttpClient) {}

  createFormData(event) {
    this.selectedFile = <File>event.target.files[0];
    this.fd.append('file', this.selectedFile, this.selectedFile.name);
  }

  upload() {
    this.http.post(url, this.fd)
    .subscribe( result => {
      console.log(result)
    });
  }
const express = require('express');
const router = express.Router();
var multer = require("multer");
const storage = multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, './upload')
    },
    filename: function (req, file, cb) {
        cb(null, file.originalname)
    }
})
const upload = multer({
    storage: storage
})

router.post('url',  upload.single('file'), (req, res) => {
  // the file is uploaded when this route is called with formdata.
  // now you can store the file name in the db if you want for further reference.
  const filename = req.file.filename;
  const path = req.file. path;
  // Call your database method here with filename and path
  res.json({'message': 'File uploaded'});
});

module.exports = router;
 类似资料:
  • 我有一个小演示,演示了Vertx如何使用Hazelcast Cluster Manager通过Eventbus在节点之间发送消息。 到目前为止,我已经成功地使节点相互识别。 但是,我在集群成员之间的EventBus通信中遇到了一个问题。根据Vertx手册页面。 集群管理器不处理事件总线节点间传输,这是由Vert直接完成的。x与TCP连接。 但是,即使我事先通过以下方式从群集管理器获得群集事件总线:

  • 我正在用facebook信使API在nodejs中构建一个facebook机器人。我试图通过直接上传heroku服务器本身的图像文件(而不是通过URL),从机器人发送图像,但它不起作用。 以下是控制台的错误日志。 调用Send API 400错误请求失败{消息:'(#100)上载的文件数不正确。必须只上载一个文件。',类型:'OAuthException',代码:100,error_subcode

  • 有棱角的 代码在此处输入图像描述 Spring 错误2021-01-02 16:50:55.397 WARN 15076---[nio-8080-exec-1]。w、 s.m.s.DefaultHandlerExceptionResolver:已解决[org.springframework.web.method.annotation.MethodArgumentConversionNotSuppo

  • Expressjs框架有一个方法。如果不使用整个框架,我怎么能做到这一点? 我正在使用node-native-zip创建一个归档文件,并希望将其发送给用户。

  • 我有两个节点js应用程序,一个发送post请求,如下所示: 另一个是试图用表达式和正文解析器来处理它: 问题是在接收端我无法检索我正在寻找的json数据。有人知道我错过了什么吗?

  • Text 节点的概念 文本节点(Text)代表元素节点(Element)和属性节点(Attribute)的文本内容。如果一个节点只包含一段文本,那么它就有一个文本子节点,代表该节点的文本内容。 通常我们使用父节点的firstChild、nextSibling等属性获取文本节点,或者使用Document节点的createTextNode方法创造一个文本节点。 // 获取文本节点 var textNo