Skip to content

How To Use Postman To Upload File

API Testing Blog

Uploading Files with Postman: A Comprehensive Guide

Postman is a powerful tool for API testing, and it offers versatile options for handling file uploads. This guide covers various methods to upload files using Postman, along with practical examples and step-by-step instructions.

Choosing the Right Request Method

The choice of HTTP request method depends on the API’s requirements. Generally, POST or PUT methods are employed for file uploads.

Uplading Files using form-data

The form-data encoding method is widely used for file uploads within APIs. It allows you to send files and other data in a key-value pair format.

Step 1: Setting up the Request

  • Choose the Request Type: Select either POST or PUT based on the API documentation.
  • Enter the API Endpoint: Replace [endpoint] with the actual endpoint provided in the API documentation.
  • Select form-data as the Body Type: This will enable the file upload functionality.

Step 2: Adding the File

  • Click the + button in the form-data section to add a new key-value pair.
  • Enter the Key Name: Choose a relevant name for the file input parameter, such as “file” or “photo”.
  • Select File as the Value Type: This will allow you to select a file from your local system.
  • Browse and Select File: Click on “Choose File” and select the desired file from your computer.

Step 3: Sending the Request

  • Click the Send button to execute the request.

Example:

Request:

POST [endpoint] HTTP/1.1
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="example.txt"
Content-Type: text/plain
Hello World!
------WebKitFormBoundary7MA4YWxkTrZu0gW--

Response:

{
"message": "File uploaded successfully",
"file_name": "example.txt"
}

Uplading Files using x-www-form-urlencoded

While not the primary method for file uploads, it can be used in scenarios where the API explicitly supports this method for file data.

Step 1: Setting up the Request

  • Choose the Request Type: Similar to form-data, you can choose either POST or PUT based on the API documentation.
  • Enter the API Endpoint: Replace [endpoint] with the actual endpoint provided in the API documentation.
  • Select x-www-form-urlencoded as the Body Type: This encoding method allows for submitting key-value pairs in a URL-encoded format, but may not directly support uploading binary files.

Step 2: Adding File Data

  • Enter the File Data Manually: This method requires you to encode the file’s binary content into a string format like Base64. You can convert the file to Base64 using online tools or libraries.
  • Add the Base64-encoded File Data as the Value: Provide the Base64-encoded string as the value for the file parameter.

Step 3: Sending the Request

  • Click the Send button to execute the request.

Example:

Request:

POST [endpoint] HTTP/1.1
Content-Type: application/x-www-form-urlencoded
file=SGVsbG8gV29ybGQhCg==&name=example.txt

Response:

{
"message": "File uploaded successfully",
"file_name": "example.txt"
}

Note: This method is generally not recommended for large file uploads as it requires the conversion of the file content to Base64, which increases the request size and can potentially impact performance.

Uplading Files using Body (Raw)

The Body (Raw) option allows you to send the file data directly to the API, however, you need to handle the file encoding and headers manually.

Step 1: Setting up the Request

  • Choose the Request Type: Choose either POST or PUT based on the API documentation.
  • Enter the API Endpoint: Replace [endpoint] with the actual endpoint provided in the API documentation.
  • Select Body and then Raw as the Body Type: This allows you to manually provide the file data as text.

Step 2: Providing File Data

  • Select the File Encoding: Choose the appropriate encoding for the file data, such as text for plain text files or binary for other file types.
  • Paste or Type the File Data: If you are sending a small file, you can directly type the file content into the text area. For larger files, consider using a combination of tools and libraries to read the file and insert the content into the Postman request body.

Step 3: Setting Headers

  • Add Necessary Headers: Include essential headers such as Content-Type to indicate the file type. For example:

    Content-Type: application/pdf

Step 4: Sending the Request

  • Click the Send button to execute the request.

Example:

Request:

POST [endpoint] HTTP/1.1
Content-Type: application/pdf
<%- (fs.readFileSync('./path/to/file.pdf')).toString('base64') %>

Response:

{
"message": "File uploaded successfully",
"file_name": "file.pdf"
}

Note: This method requires more manual handling, but it provides greater flexibility. Consider using libraries like fs in Node.js to read and process files efficiently.

Uplading Files using a Collection

Postman Collections enable you to group multiple requests together for easier organization and execution. You can incorporate file uploads within a collection to streamline your workflow.

Step 1: Create a Collection

  • Click on the Collections tab in Postman and click on Create Collection.
  • Provide a Name for your new collection.

Step 2: Add a Request

  • Click on the ... menu next to your collection.
  • Select Add Request.
  • Configure the request details as described in the previous sections (using form-data, x-www-form-urlencoded, or Body (Raw)).

Step 3: Send the Request

  • You can execute individual requests by clicking on the Send button or run the entire collection through the Run button in the collection view.

This method helps you manage and organize multiple file upload requests. It enhances test automation by ensuring all uploads are performed consistently within a defined collection.

Working with Large Files

For large file uploads, consider the following:

  • Using Pre-Signed URLs: Utilize presigned URLs generated by your API to authorize the file upload without requiring the entire file to be sent in a single request.
  • Chunked Uploads: Break down the file into smaller chunks and upload them individually. This can improve performance and stability for large files.
  • File Transfer Protocol (FTP): For very large files, consider using an FTP client or library to transfer files directly.

Conclusion

Mastering file uploads in Postman empowers you to effectively test APIs that handle file-related functionalities. Whether you prefer the simplicity of form-data or the flexibility of Body (Raw), Postman offers the tools you need to ensure your APIs handle files reliably. Remember to consult the API documentation for specific instructions and requirements regarding file uploading.

API Testing Blog