前端获取文件md5值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端: 1. 在HTML页面中添加一个表单元素用于选择要上传的文件: ``` <form id="upload-form"> <input type="file" name="file"> <button type="submit">上传</button> </form> ``` 2. 监听表单的submit事件,阻止默认行为并发送文件到后端: ``` document.querySelector('#upload-form').addEventListener('submit', function(e) { e.preventDefault(); var file = e.target.elements.file.files[0]; var formData = new FormData(); formData.append('file', file); fetch('/upload', { method: 'POST', body: formData }).then(function(response) { // 处理响应 }); }); ``` 后端: 1. 安装`ava`和`crypto`模块: ``` npm install ava crypto ``` 2. 编写测试用例: ``` const test = require('ava'); const crypto = require('crypto'); const fs = require('fs'); test('上传文件并进行MD5加密', async t => { // 读取文件 const file = fs.readFileSync('path/to/file'); // 计算MD5哈希 const hash = crypto.createHash('md5').update(file).digest('hex'); // 发送文件获取响应 const response = await fetch('/upload', { method: 'POST', body: file }); // 验证响应中的哈希是否与计算得到的一致 const responseBody = await response.text(); t.is(responseBody, hash); }); ``` 3. 编写后端路由处理函数: ``` const crypto = require('crypto'); const multer = require('multer'); const upload = multer({ dest: 'uploads/' }); router.post('/upload', upload.single('file'), function(req, res) { // 读取上传的文件 const file = fs.readFileSync(req.file.path); // 计算MD5哈希 const hash = crypto.createHash('md5').update(file).digest('hex'); // 删除上传的文件 fs.unlinkSync(req.file.path); // 返回哈希 res.send(hash); }); ``` 4. 运行测试: ``` npm test ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值