A Node.js application for uploading file chunks and combining them into a single file on the server.
Speeding your application 5x Faster than the uploading you are currently using!.
In many scenarios, uploading large files to a server can be challenging due to limitations in file size or network conditions. This project provides a solution by allowing the client to split a large file into smaller chunks and upload them individually to the server. Once all chunks are received, the server combines them into a single file.
- Split large files into smaller chunks for easier uploading.
- Upload chunks to the server asynchronously.
- Combine uploaded chunks into a single file on the server.
- Accepts all types of files.
- Simple and easy-to-use interface.
JavaScript on front-end divides the user's selected file into smaller segments and transmits them simultaneously to the server through the
/documents
route. These segments are then stored in a temporary location known astemps
folder on the server. Following successful storage, the browser prompts the server to aggregate these segments via the/combine
route. Utilizing binary methods, the server adeptly merges the segmented data, On completion, file being will be securely stored within theuploads
directory. So, all the broken pieces of data come together nicely to make one complete file on the server.
To use this application, follow these steps:
-
Clone the repository:
git clone https://github.com/isaka-james/chunks-to-file.git
-
Enter into the project folder:
cd chunks-to-file
-
Install the dependencies:
npm install
-
Start the server:
npm start
-
Open your web browser and navigate to
http://localhost/
. -
Select a file using the provided input field.
-
Click the "Upload" button to initiate the upload process.
-
The server will receive the file chunks and combine them into a single file inside the
uploads
folder.
Contributions are welcome! If you find any issues or have suggestions for improvement, please open an issue or submit a pull request.
This project is licensed under the MIT License.
Feel free to customize the content and add more details specific to your project. If you have any questions or need further assistance, let me know!