Upload & Download (Front-end)
Upload
In order to pass the binary data to the server, the content type- multipart/form-data must be required
The
multipart/form-data
content type is designed to allow for the transmission of binary data, such as files, over HTTP. With this content type, the data in the request body is divided into multiple parts, each identified by a unique boundary string. Each part contains a header and a body, where the body contains the binary data of the file.
Download
For downloading file, there are 2 types of url, data url and server url for a tag href
Download attribute on a tag can be used to specify the name of file that to be downloaded
Data Url
Can be used for download file without uploading to server
The format is
Media type: mime type, e.g: image/png
data: the encoded data in base64 format which is converted from file binary data
Server Url
File url that uploaded to server
Streaming can be allowed when using server url to download file
If authentication is needed, the hash can be get from api firstly, and then combine with server url to obtain the file, e.g: https://backend.com/test.txt?code=xxxxxx
Blob (Binary large object)
Blob data is a file-like object of immutable, raw data; they can be read as text or binary data, or converted into stream
When the server api return binary file (e.g: file), the endpoint is actually a file url
Sometimes, we need to fetch data instead of using a tag with server url to download file directly, for example: need to pass token into header
We need to get the blob data from response, make good use of blob data to create another url to new a tag to download file
Streaming
For the default api calling, the client will wait for the server until the whole of the server data is ready
After using streaming on front-end, the client can read the server response by chunks until the whole of data is get.
It can be used to trace the progress of getting data from backend
References
Last updated
Was this helpful?