【问题标题】:Upload multiple files with storage limit in database在数据库中上传多个具有存储限制的文件
【发布时间】:2015-01-14 18:44:14
【问题描述】:

我目前正在做一个项目,使用 C#、MSSQL 和 Angular 构建一个 Web 应用程序。 我已经通过拖放实现了文件上传,也通过拖放实现了多个文件上传。 删除文件后,我使用 Angular 向服务器发送 API 请求以保存文件。 我将文件一一发布到服务器。

现在,每个用户只能使用有限的存储空间,他已经使用的存储空间会保存在数据库中。

现在会发生什么。用户一次拖放 4-5 个文件。将这些文件的文件大小相加得到的大小大于用户有权使用的内存量。

但是,所有文件都被保存了,因为它们一个一个地通过了检查,并且一个一个地保存到了数据库中……我遇到的是一个种族问题。如果偶然地在第一个文件保存后执行了第二个文件的检查,它将不会通过(例如)。如果没有,则检查将通过,并且用户将超过分配给他的存储量。

您对如何解决此问题有任何建议吗?

我希望一切都清楚,我认为放置代码不会有太大帮助。

提前谢谢大家。

【问题讨论】:

  • 您是否为每个文件发送一个新的 ajax 请求?
  • 我使用 Angular 发送请求,所以我使用它的 $http 服务发送 ajax 请求。
  • 这不是我要问的。如果您需要更好的建议,请包括处理这些文件所涉及的 javascript 和 C# 代码。
  • 抱歉,我错过了重点,是的,我正在为每个文件发送请求。
  • 为什么不同时发送所有文件,在控制器中汇总它们,然后将其与剩余存储空间进行比较?

标签: c# angularjs upload


【解决方案1】:

iMHO,我们可以维护一个会话变量,该变量使用用户限制(可能在登录期间)进行初始化,并在每次上传时继续追加。

所以在收到一个新文件时,你增加大小并检查它是否允许,如果允许,继续,否则抛出一个超出限制的异常。

可以为您的方案付出最少的努力。

【讨论】:

    猜你喜欢
    • 2018-09-03
    • 1970-01-01
    • 2019-09-22
    • 2015-03-30
    • 2011-03-30
    • 2014-09-11
    • 1970-01-01
    • 2018-02-18
    • 2015-01-20
    相关资源
    最近更新 更多