【问题标题】:Uploading multiple files with dropzone js plugin and session security: no parallel uploads?使用 dropzone js 插件和会话安全上传多个文件:没有并行上传?
【发布时间】:2013-07-17 03:30:58
【问题描述】:

我正在使用 dropzone.js 插件 (http://www.dropzonejs.com/),它允许拖放文件上传。除了上传 URL 和 parallelUploads 的一个必需参数(见下文)外,我只使用 Dropzone 的默认值。

该网站还使用类似http://www.wikihow.com/Create-a-Secure-Login-Script-in-PHP-and-MySQL 的密码和会话来加强用户安全。

我遇到的“问题”是当parallelUploads 大于1(默认为2)时,post_file.php 似乎没有捕获所有上传。 post_file.php 在顶部有一个 login_check 以确保上传的文件来自有效用户并获取用户 ID。禁用 login_check 可以解决问题,但显然这不是解决方案。

为什么并行上传会成为服务器端的问题?它会破坏会话魔力吗?有什么解决方案的想法吗?

并行上传并不是关键任务,但最好是让较小的文件可以传递一个较大的文件。

谢谢!

【问题讨论】:

    标签: php session file-upload


    【解决方案1】:

    仅用了 2 天就回答了我自己的问题!

    sec_session_start 函数包含session_regenerate_id(true);。为了防止未经授权的上传,上传页面有会话认证。因此,当同时上传多个文件时,会话信息正在重新生成,但没有及时传播,因此只有一个或两个文件会进入。

    我在调试多个并行 ajax 请求时意识到了这个问题。 (ajax 页面使用相同的授权检查。)

    不想完全摆脱再生,我在sec_session_start 中添加了一个参数$ajax=0。这样我就可以保持所有其他(非并行活动)页面不变。我将线路更改为if (!$ajax) session_regenerate_id(true);。现在在并行活动页面(ajax 和文件上传)上,我称之为sec_session_start(1)

    解决了 ajax 和上传的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 2020-09-04
      • 2023-03-26
      • 2017-10-03
      • 1970-01-01
      相关资源
      最近更新 更多