@loopback/example-file-transfer
An example application to demonstrate file uploads and downloads for LoopBack 4
Summary
This application exposes POST /files
endpoint that accepts
multipart/form-data
based file uploads. The uploaded files can be listed using
GET /files
and individual files can be downloaded using
GET /files/<filename>
.
Key artifacts
-
- Expose
POST /files
endpoint to allow file uploads
- Expose
-
FileUploadService - an Express middleware from multer
-
A service provider that returns a configured
multer
request handlerThe file upload is configured with
multer
options in src/application.ts as follows:// Configure file upload with multer options const multerOptions: multer.Options = { storage: multer.diskStorage({ // Upload files to `.sandbox` destination: path.join(__dirname, '../.sandbox'), // Use the original file name as is filename: (req, file, cb) => { cb(null, file.originalname); }, }), }; this.configure(FILE_UPLOAD_SERVICE).to(multerOptions);
-
-
- Expose
GET /files
endpoint to list uploaded files - Expose
GET /files/{filename}
endpoint to download a file
- Expose
Use
Start the app:
npm start
The application will start on port 3000
. Open http://localhost:3000 in your
browser. You can try to upload a few files using the web UI or API explorer.
By default, the uploaded files will be stored in .sandbox
folder under the
application root directory. The directory can be configured via
fileStorageDirectory
of application config.
Contributions
Tests
Run npm test
from the root folder.
Contributors
See all contributors.
License
MIT