Search code examples
ajaxmultipartform-dataform-datasuperagent

How to send files with superagent


So about a month ago I asked a question regarding superagent and sending files, but got no response at all. I would still like to find out how to do this as I enjoy using superagent.

I am able to send files using plain ajax:

var fd = new FormData();
        fd.append( 'file', this.refs.File.getDOMNode().files[0] );

        $.ajax({
            url: 'http://localhost:8080/files',
            data: fd,
            processData: false,
            contentType: false,
            type: 'POST',
            success: function(data){
                console.log(data)
            }
        });

But when I try the same thing in superagent, nothing works:

var fd = new FormData();
fd.append( 'file', this.refs.File.getDOMNode().files[0] );

Request.post('http://localhost:8080/files')
    .set('Content-Type', false)
    .set('Process-Data', false)
    .attach('file', fd, 'file')
    .end((err, res) => {
        console.log(err);
        console.log(res);
    })

Can anyone, please, tell me whats going on.


Solution

  • This should work.

    var file = this.refs.File.getDOMNode().files[0];
    
    
    Request.post('http://localhost:8080/files')
        .set("Content-Type", "application/octet-stream")
        .send(file)
        .end((err, res) => {
            console.log(err);
            console.log(res);
        })