You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular PWA在iOS设备拍照上传时文件名重复问题求助

解决iOS拍照上传多张图片文件名重复问题

iOS Safari在通过拍照方式批量上传图片时,所有拍摄的图片会被赋予相同的临时文件名,导致后端接收时出现文件名冲突。以下是前端层面的解决方案,通过为每个上传文件生成唯一文件名来解决问题:

修改后的TypeScript代码

public attachFile(event: any): void {
    const files: FileList = event.target.files;
    const processedFiles: File[] = [];

    for (let i = 0; i < files.length; i++) {
        const originalFile = files[i];
        // 生成唯一文件名:时间戳+随机字符串+原文件扩展名
        const timestamp = Date.now();
        const randomStr = Math.random().toString(36).substr(2, 9);
        const fileExt = originalFile.name.split('.').pop() || '';
        const uniqueFileName = `${timestamp}-${randomStr}.${fileExt}`;

        // 创建新的File对象,保留原文件的内容、类型和修改时间
        const newFile = new File([originalFile], uniqueFileName, {
            type: originalFile.type,
            lastModified: originalFile.lastModified
        });
        processedFiles.push(newFile);
    }

    // 后续使用processedFiles数组执行上传逻辑即可
    // 示例:this.uploadService.uploadFiles(processedFiles);
}

关键说明

  • 采用时间戳+随机字符串的组合生成文件名,能确保全局唯一性,避免重复
  • 通过File构造器重新生成文件对象,完全保留原文件的核心信息,仅替换文件名
  • 如果后端需要保留原文件名的记录,可以在上传时额外传递originalFile.name作为元数据

内容的提问来源于stack exchange,提问作者Valla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 05:48:24