Search code examples
javascriptnode.jsrequestpostman

Upload a file with PUT/POST method on POSTMAN


I am trying to upload a file with POSTMAN to this URL

http://localhost:3000/bucket/test/files/

And should got result in my controller there :

    put(request, response, args) {
    //HERE IN THE REQUEST.BODY 
    console.log(request.body)

    let fileManager = request.modules.VMFile;
    let mimeTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/x-icon', '  video/mpeg', 'text/html', 'video/x-msvideo', 'application/msword', 'application/pdf', 'application/vnd.ms-powerpoint', 'application/x-rar-compressed'];
    let maxFileSize = 4 * 1024 * 1024;

    fileManager.initUpload(mimeTypes, maxFileSize);

    fileManager.receive((files) => {

        fileManager.forEachFileContent(files, (file, content) => {

            minioClient.putObject(request.body.bucket, request.body.name, content, file.size, file.mimetype, function (err, etag) {
                response.setData("File uploaded").apply();
                return console.log(err, etag)
            })

        });
        fileManager.clearFilesFromTmp(files);
    });
}

In POSTMAN I got this :

postman

With nothing on headers but I could only PUT (or POST, I tried to change my route with POST but same issue) the name and bucket field... I got nothing on my files field...


Solution

  • While using Postman especially when you test file upload ensure that,

    1. in Headers:
      • The Content-type field has been set as multipart/form-data in Headers.
    2. in Body:
      • form-data option should remain as default.
      • Choose File option instead of text from the dropdown on the right side.
      • Type File in the text box where the placeholder is key.