为什么PHP变量无法使用blueimp jquery文件上传

时间:2013-01-02 14:34:28

标签: php jquery cookies blueimp

我最近开始使用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​​”或'。哈哈'但这一切都无效。

有人可以帮忙吗?如果可以,我们将不胜感激。

6 个答案:

答案 0 :(得分:0)

使用双引号而不是单引号(和read some documentation on strings

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

答案 1 :(得分: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}/",

答案 2 :(得分:0)

试试这一行:

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

希望它可以帮到你

答案 3 :(得分:0)

你必须使用“$ this->”因为它在课堂上。然后你要么必须使用双引号或连接运算符(看起来像句点):

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

在你的课堂上,$ haha​​必须用“var”定义:

var $haha = $_COOKIE['nameofcookie'];

答案 4 :(得分:0)

请使用

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

而不是:

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

答案 5 :(得分:0)

查看构造函数,它允许您传递必须是数组的$选项。 $ 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中的键与构造函数中定义的键匹配,则值将覆盖构造函数中为该键存储的值,当键不匹配时,将添加键值对。 / p>

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