🧪 测试场景
场景A:同一机构内重复上传相同图片
测试步骤:
1. 登录系统(admin/admin123)
2. 在某个机构中上传一张图片(如:test1.jpg)
3. 在同一机构中再次上传完全相同的图片文件
预期结果:
显示错误提示:"重复图片无法上传!图片'test1.jpg'已存在于机构'XXX'中"
场景B:不同机构间重复上传相同图片
测试步骤:
1. 在机构A中上传图片(如:logo.png)
2. 切换到机构B
3. 尝试上传完全相同的图片文件
预期结果:
显示错误提示:"重复图片无法上传!图片'logo.png'已存在于机构'机构A'中"
场景C:文件名相同但内容不同的图片
测试步骤:
1. 上传图片A(文件名:photo.jpg,内容:风景照)
2. 准备另一张不同内容的图片,重命名为相同文件名(photo.jpg,内容:人物照)
3. 尝试上传重命名后的图片
预期结果:
应该允许上传,因为内容不同(基于hash检测)
场景D:内容相同但文件名不同的图片
测试步骤:
1. 上传图片(如:original.jpg)
2. 将同一张图片重命名(如:copy.jpg)
3. 尝试上传重命名后的图片
预期结果:
显示错误提示:"重复图片无法上传!相同内容的图片已存在于机构'XXX'中(原文件名:'original.jpg')"
场景E:轻微编辑后的图片
测试步骤:
1. 上传原始图片
2. 对图片进行轻微编辑(如调整亮度、裁剪1像素)
3. 尝试上传编辑后的图片
预期结果:
应该允许上传,因为内容hash已改变
🔧 调试信息检查
测试时请打开浏览器开发者工具(F12),查看Console中的详细日志:
正常上传流程日志:
🚀 开始处理图片上传: [文件对象] [机构ID]
📁 文件信息: {name: "test.jpg", size: 12345, type: "image/jpeg"}
🏢 找到机构: [机构名称] 当前图片数量: X
🔍 执行详细重复检测...
🔍 开始检查图片重复: test.jpg 大小: 12345
文件hash计算完成: test.jpg hash: abc123def
✅ 图片检查通过,无重复
🗜️ 开始压缩图片...
✅ 图片压缩完成,数据长度: 67890
🔐 添加文件hash...
💾 准备保存图片数据: test.jpg hash: abc123def
✅ 图片上传成功: img_1234567890_abcdef
重复检测失败日志:
🔍 开始检查图片重复: test.jpg 大小: 12345
❌ 发现完全相同的图片: 图片"test.jpg"已存在于机构"测试机构"中
❌ 重复检测失败,停止上传
⚠️ 注意事项
测试前准备:
1. 确保已部署最新版本的修复代码
2. 清除浏览器缓存(Ctrl+Shift+R)
3. 准备多张测试图片(相同内容、不同内容、不同大小等)
测试环境:
- 访问地址:http://192.168.100.70:4001
- 管理员账号:admin / admin123
- 测试用户:13800138001 / 123456
🔍 故障排除
如果重复检测不工作:
1. 检查浏览器控制台是否有JavaScript错误
2. 确认是否加载了最新版本的代码
3. 验证localStorage中是否有图片数据
4. 检查网络请求是否正常
如果hash计算失败:
1. 检查文件是否为有效的图片格式
2. 确认文件大小是否在限制范围内
3. 查看控制台是否有FileReader相关错误