Jquery文件上载更改会话id



我已经尝试解决这个问题好几天了,但没有成功。

我使用blueimp Jquery File Upload,一切都很好,但我需要根据url发送的参数将图片保存在不同的文件夹中,比如/index.php?客户=160

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

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

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

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

我意识到我可以使用PHP用户目录,文件保存在session_id()中的6afa0f7338b14aeed39eb7656f364b4e这样的文件夹中,然后我尝试在/index.PHP开始时用我想要的文件夹编号更改session_id?客户=160

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

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

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

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

下面的代码将向您展示如何保存名为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);
}

尽管这个问题已经有一段时间没有给出最后的答案了,但我还是想对这个问题进行一点更新。由于jquery文件上传库的5.17版本,因此支持用户目录。在UploadHandler.php中,您会发现选项"user_dirs"=>false。只需将其设置为"true",您将拥有基于会话id的用户目录。

如果你想拥有自己的用户目录,而不是基于会话id,而是基于用户id(你自己定义的会话密钥),你可以按照以下方式进行:

在index.php文件中(如jquery文件上传库的Demo中所述),放置以下内容在"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
));

就是这样…现在你有了自己的用户目录,用于上传文件

最新更新