file2md5 is a browser-side implementation of file conversion to md5 format based on SparkMD5, which supports typescript friendly.
-
Supports Typescript
-
Promise API
-
All browsers supported
Npm
npm install file2md5 --save
Yarn
yarn add file2md5
Html:
<input type="file" id="upload" />
Javascript:
import file2md5 from 'file2md5';
const el = document.querySelector('#upload');
const onProgress = progress => console.log('progress', progress);
const onChange = async e => {
if (!e.target.files || !e.target.files[0]) {
return;
}
const file = e.target.files[0];
const abort = file2md5.abort;
// Assuming that it takes 3s to convert the md5 value,
// the simulation terminates the operation at 1s
setTimeout(
() => abort(),
1000
);
try {
const md5 = await file2md5(file, {chunkSize: 3 * 1024 * 1024, onProgress});
console.log('md5 string:', md5); // d18bb890790c4335e57eadbedc801c2c
}
catch (e) {
console.error('error', e);
}
};
el.addEventListener(
'change',
onChange,
false
);
You can call the abort method to terminate before the end of the file conversion to the md5 value.
const abort = file2md5.abort;
abort();
Name | Required | Description | Type | Default value |
---|---|---|---|---|
file | true | The file is used to convert md5 format. | File | - |
options | false | Optional configuration items. | IOptions | {} |
Name | Required | Description | Type | Default value |
---|---|---|---|---|
chunkSize | false | The conversion is performed in chunks, so you can customize the size of each chunk. | number | 2 * 1024 * 1024 |
raw | false | If raw is true, the result as a binary string will be returned instead. | boolean | false |
onProgress | false | Callback function for monitoring progress. | (progress: number) => unknown | - |
- IE10+
- Chrome latest 2 versions
- Firefox latest 2 versions
- Microsoft Edge latest 2 versions
- Safari latest 2 versions
file2md5 is licensed under a MIT License