使用react和node上传图像而不使用req.files

时间:2017-10-23 11:47:00

标签: javascript node.js image reactjs express

我正在使用react / node进行文件上传。 我没有将文件传递给API请求,而是传递到API请求的正文部分。 我的反应代码就像,

import React, { Component } from 'react';
import request from 'superagent';

class App extends Component {
constructor(props) {
    super(props);
    this.state = {
        image1: '',
    };

    this.handleUploadFile = this.handleUploadFile.bind(this);
    this.handleSubmit = this.handleSubmit.bind(this);
};

handleUploadFile = (event) => {
    console.log("event", event.target);
    this.setState({
        image1: event.target.files[0],
    });
}

handleSubmit(e) {
    e.preventDefault();
    const dataDemo = {
        image: this.state.image1,
    };

    request
       .post(API_URL)
       .set('Content-Type', 'application/json')
       .send(dataDemo)
       .end(function (err, res) {
         console.log("err", err);
         console.log("res", res);
       })
}

render() {
    return (
        <div>
            <form encType="multipart/form-data">
                <div style={{width: '100%', marginTop: '10px'}}>
                    Image 1
                    <input name="image1" type="file" onChange={this.handleUploadFile} />
                </div>

                <div style={{width: '100%', marginTop: '10px'}}>
                    <input type="submit" name="submit" value="submit" onClick={this.handleSubmit} />
                </div>

            </form>
        </div>
    )
}`

我想使用Node / Express.js将此图像上传到服务器 我在Node / Express中的API代码。

请帮助我如何使用API​​上传此图像并使用Node / Express保存到服务器(文件夹内)。

我的节点服务器代码就像,

router.post(END_POINT,function (req, res) {
  //I want to add upload code here without any third party module and without req.files/req.file.
})

请帮帮我。先感谢您。

1 个答案:

答案 0 :(得分:0)

如果要上传多张图片,则可以将req.busboy与req.files一起使用

  • 您可以从from-data

    上传包含邮递员的图像

    支持多张图片上传

  • 您也可以使用multipart/form-data

    var form = req.form();

    form.append('file','',{ filename:'myfile.txt',

    contentType:'text / plain'

    });