gpt4 book ai didi

php - 用于在特定 Web 应用程序中管理文件的架构

转载 作者:行者123 更新时间:2023-11-30 23:49:24 24 4
gpt4 key购买 nike

我正在使用 Laravel 4(带有 Apache)来开发 Web 应用程序。我需要一些(技术)建议/解决方案来设计我的应用程序的一部分

这是我这部分问题的背景:

在我的网络应用程序中,我需要存储由不同用户上传的文件(图像或最大 150Mo 的视频)。用户可以与其选择的其他人共享他的一些文件。例如: “我已经上传了 image1.png,我只想与 Bob 和 Alice 分享它。如果我删除 image1.png,Bob 和 Alice 必须仍然可以访问这个文件,直到他们都不再需要它为止(a如果没有用户链接到此文件,批处理可能每天运行以删除它)”。

问题:

  • 为了管理上传的文件,我想允许用户上传一些文件而不阻止他。他必须能够在上传期间浏览我的 Web 应用程序的所有页面并查看它们的状态(例如,在进度条中)。 我该怎么做? PHP 脚本和 Ajax 就足够了吗?这可以通过 jQuery 文件上传等 Jquery 插件实现吗?
  • 为了存储我的文件,目前,我使用的是一个目录。此外,我使用 Mysql 数据库围绕文件管理构建逻辑(例如:“image1.png 已由我上传,其 url 当前与 Alice 和 Bob 共享。他们可以下载它”)。目前,它工作正常。只有 Alice 和 Bob 可以看到我的文件。但我不知道这对于可以增长的应用程序来说是否是一个好方法(就文件和用户而言)。 这样的架构好吗(单目录+数据库)?或者我必须为每个用户使用物理目录?
  • 我能否就我的应用程序的性能和优化获得任何建议?

如有任何帮助,我们将不胜感激。提前致谢,抱歉我的英语不好。

最佳答案

1) 坏主意/你必须在单独的窗口(或弹出窗口)中上传

在上传完成之前页面必须保持打开状态,如果您可以在页面退出时暂停它然后在加载下一页后将其恢复到原来的位置我会感到惊讶(而且会很多工作可能没有那么多好处);也就是说,除非您的应用程序包含在一个页面中。我曾经允许在上传期间使用后台应用程序,但它最终会根据用户行为导致许多意外问题,现在我在上传期间卡住了 bo,他们等待,更安全,没有错误,没有修复,没有麻烦

2) 主要取决于您是否必须遍历/搜索文件系统中的文件,即不是从指向服务器上文件的数据库查询

3) 不,你必须为每个特定问题创建一个单独的问题,但你也可以谷歌 jquery 优化

我想我会将指向文件的指针存储在一个数据库表中,并使用一个系统将查询结果缓存在文件中的 json 中(每次用户删除/添加文件时都会更新缓存)(所以即使用户对数据库有很多查询保持低水平)+ 我会允许多个文件选择 + 让用户等待他们的上传完成(以及服务器文件处理,如果有的话 - 除了可能的视频编辑 - 太长) - 我不喜欢弹出

关于php - 用于在特定 Web 应用程序中管理文件的架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19241960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com