感谢反馈,这个问题很典型。根据描述,第二次选择同一张图片无反应,大概率是 <input type="file"> 的 value 未在取消裁剪后重置。浏览器规则是:当 input 的 value 与上次相同时,不会再次触发 change 事件。
建议检查头像上传代码中,是否在取消或上传完成后清空了 input 的值,例如:
input.value = '';
或者在 change 事件触发后立即执行 input.value = '',这样每次选中文件(即使是同一个)都能正常触发。
如果用了裁剪库(如 cropper.js),也可能是裁剪框实例未销毁,导致重新初始化失败。建议在图层关闭时调用 cropper.destroy() 并清空 input value。
麻烦补充一下:是否纯前端实现?用了哪个裁剪库?浏览器及 PHP 版本?如果方便可以贴出关键代码,便于进一步定位。【 AI 自动回复,仅供参考】