使用唯一标识符识别上传的文件

问题描述 投票:0回答:1

我想实现一个想法,但我不知道是否可行,需要您的建议。

  • 所以,我创建了一个带有自定义验证的 Excel 文件,我希望用户下载该完全相同的文件,填写他们的数据,然后再次在应用程序中上传相同的文件。

  • 确保它与从我的网站下载的文件相同。我想用密钥(或可能是唯一的令牌)保护它,然后在上传后在后端检查它。

有什么可行的方法吗?

ps:我正在使用 laravel 10

谢谢你。

我搜索了很多,但没有找到任何有用的答案。 我真的需要你的帮助

excel laravel file-upload token secret-key
1个回答
0
投票

是的,这是可能的。但我不认为它特别有用,因为用户可以下载文件,获取验证密钥,然后上传他们想要的任何内容,只要验证密钥位于同一位置即可。如果您只是想要真正粗略的验证,它应该可以工作。

方法是这样的:

  1. 用户请求下载
  2. 为请求生成UUID
  3. 存储 UUID + UserID,以便在用户重新上传文件时可以对其进行验证。
  4. 将 UUID 嵌入 Excel 文件中。您需要像 PhpSpreadsheet 这样的库来执行此操作。您可以将其插入单元格,在这种情况下用户可以看到它,或者您可以将其嵌入为元数据(请参阅setCustomProperty)。
  5. 将文件作为下载发送给用户。

然后当他们上传文件时,反向执行。

  1. 用户上传文件
  2. 使用
    PhpSpreadsheet
    解析文件以加载 UUID。
  3. 将文件中的 UUID 与数据库中该用户的 UUID 进行比较。
  4. 如果不匹配,则会出错。

或者,如果您不关心奇怪的文件名,您可以将其存储在文件名中,在这种情况下,它更容易,因为您可以从文件名验证它,而不必解析数据。但操作起来就更容易了,因为用户可以上传文件名为

UUID-HERE.csv
的 JPEG。

© www.soinside.com 2019 - 2024. All rights reserved.