0

我最近开始使用 blueimp jquery 文件上传,但是我偶然发现了一个问题。

我想为图像应该上传到的路径分配一个 php 变量。

这是代码

 $haha = $_COOKIE['nameofcookie'];

 function __construct($options = null, $initialize = true) {
    $this->options = array(
        'script_url' => $this->get_full_url().'/',
        'upload_dir' => '../../../mem/$haha/',
        'upload_url' => 'http://www.mydomain.co.uk/mem/$haha/',
        'user_dirs' => false,
        'mkdir_mode' => 0755,
        'param_name' => 'files',
        // Set the following option to 'POST', if your server does not support
        // DELETE requests. This is a parameter sent to the client:
        'delete_type' => 'DELETE',
        'access_control_allow_origin' => '*',
        'access_control_allow_credentials' => false,
        'access_control_allow_methods' => array(
            'OPTIONS',
            'HEAD',
            'GET',
            'POST',
            'PUT',
            'PATCH',
            'DELETE'
        ),

$haha 是我分配给我放置在用户身上的 cookie 的 PHP 变量。

但是,当我执行代码时,它会创建一个名为 $haha 的目录 - 而不是用户的 ID。

我曾尝试使用 "$haha" 或 ' 。$哈哈。' 但这些都不起作用。

任何人都可以帮忙吗?如果可以的话,将不胜感激。

4

6 回答 6

0

查看构造函数,它允许您传递必须是数组的 $options。$options 将与 $this->options 合并。

  if ($options) {
        $this->options = array_merge($this->options, $options);
    }

上面的语句显示了它是如何工作的。

现在我解释如何将路径传递给构造函数: 1. 首先为类声明一个对象:

 $options=array('upload_url'=>'your/path','upload_dir'=>'your/path');
 $uploadHandler=  new UploadHandler($options);

这样做是它会根据需要设置upload_url 和upload_path。

注意:如果 $options 中的键与构造函数中定义的键匹配,则这些值将覆盖构造函数中为该键存储的值,当键不匹配时,将添加键值对。

$haha = $_COOKIE['nameofcookie']; 这个变量似乎是类变量。您还需要牢牢把握 OOP 概念。在类方法中访问类变量时,应该使用 $this->haha。

于 2013-01-04T06:13:30.970 回答
0

你必须使用 "$this->" 因为它在一个类中。然后您必须使用双引号或连接运算符(看起来像一个句点):

'upload_dir' => '../../../mem/'.$this->haha.'/',
'upload_url' => 'http://www.mydomain.co.uk/mem/'.$this->haha.'/',

在你的班级中,$haha 必须用“var”定义:

var $haha = $_COOKIE['nameofcookie'];
于 2013-01-02T14:38:52.350 回答
0

请用

'http://www.mydomain.co.uk/mem/"'.$haha.'"/',

代替:

'http://www.mydomain.co.uk/mem/$haha/',
于 2013-01-02T14:38:59.277 回答
0

你有几个选择...

我最喜欢sprintf使用 %d 表示整数或 %s 表示字符串:

'upload_dir' => sprintf("../../../mem/%d/", $haha),
'upload_url' => sprintf("http://www.mydomain.co.uk/mem/%d/", $haha),

或使用双引号:

'upload_dir' => "../../../mem/{$haha}/",
'upload_url' => "http://www.mydomain.co.uk/mem/{$haha}/",
于 2013-01-02T14:37:23.767 回答
0

试试这一行:

'upload_dir' => '../../../mem/'.$haha.'/',
'upload_url' => 'http://www.mydomain.co.uk/mem/'.$haha.'/',

希望它可以帮助你

于 2013-01-02T14:38:24.893 回答
0

使用双引号而不是单引号(并阅读一些关于字符串的文档

"http://www.mydomain.co.uk/mem/$haha/",

于 2013-01-02T14:36:02.813 回答