【问题标题】:Jquery File Upload change session idJquery 文件上传更改会话 id
【发布时间】:2014-01-03 23:32:02
【问题描述】:

我这几天一直在尝试解决这个问题,但没有成功。

我正在使用 blueimp Jquery 文件上传,一切正常,但我需要根据 /index.php?customer=160 等 url 发送的参数将图片保存在不同的文件夹中

<input type="hidden" name="customer" value="<?php print $_GET["id_cliente"];?>">

我在表单中创建了隐藏字段,并在uploadhanndler.php中得到了它。

/files/'.$_POST['customer'].'

,这里一切正常,文件保存在我想要的文件夹中,但是下次我打开窗口 /index.php?customer=160 时,列出的文件是 files/ 文件夹而不是 files/160/文件夹或我要列出的号码。

我意识到我可以使用 PHP 用户目录,并且文件被保存在来自 session_id() 的 6afa0f7338b14aeed39eb7656f364b4e 之类的文件夹中,然后我尝试将 session_id() 更改为我想要的文件夹的编号这种方式在/index.php?customer=160的开头

session_start();
session_id($_GET['customer']);

但文件仍保存在文件夹 6afa0f7338b14aeed39eb7656f364b4e 中,当我打印 session_id() 时为 160。

PHP 用户目录是实现我想要的好方法吗?我做错了什么?

提前谢谢,原谅我的英语不好。

【问题讨论】:

  • 我认为您正在尝试将customer_id 存储为会话变量,然后将其用作您的文件夹名称?对吗?

标签: php file-upload sessionid jquery-file-upload blueimp


【解决方案1】:

下面的代码将向您展示如何保存名为 customer_id 的会话 ID,然后将其用作文件夹名称。如果您需要更多帮助,请告诉我。

// start (or restart) the session
session_start();

// set the customer id session var
$_SESSION['customer_id'] = // set this variable something that you've retrieved from the DB

// create a folder if it doesn't already exist
$dir = '/httpdocs/mySite/customers/' . $_SESSION['customer_id'];
if (!file_exists($dir)) {
    mkdir($dir, 0777, true);
}

【讨论】:

    【解决方案2】:

    即使距离这个问题的最后一个答案已经有一段时间了,我想就这个问题提供一个小的更新。从 jquery-file-upload 库的 5.17 版开始,支持用户目录。 在 UploadHandler.php 中,您会发现选项 'user_dirs' => false。只需将其设置为“true”,您将拥有基于 session-id 的用户目录。

    如果您想拥有自己的用户目录,而不是基于会话 ID,但例如根据用户 ID(您自己定义的会话密钥),您可以按以下方式进行:

    在 index.php 文件中(如 jquery-file-upload 库的演示中所述),您放置以下内容 紧跟在“require('UploadHandler.php');”之后

    class CustomUploadHandler extends UploadHandler {
        protected function get_user_id() {
            @session_start();
            return $_SESSION[*<your own user id session key>*];
        }
    }
    

    接着是:

    $upload_handler = new CustomUploadHandler(array(
        'user_dirs' => true
    ));
    

    ...就是这样...现在您有自己的用户目录用于上传文件

    【讨论】:

      猜你喜欢
      • 2015-02-17
      • 2013-04-03
      • 2014-01-11
      • 2017-04-14
      • 2011-01-19
      • 2015-01-07
      • 2014-08-20
      • 1970-01-01
      • 2012-08-03
      相关资源
      最近更新 更多