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変数です。

ただし、コードを実行すると、ユーザーのIDではなく$hahaというディレクトリが作成されます。

「$haha」または「」を使用しようとしました。$haha。'しかし、これはどれも機能しません。

誰か助けてもらえますか?よろしければ大歓迎です。

4

6 に答える 6

0

一重引用符の代わりに二重引用符を使用します(そして文字列に関するいくつかのドキュメントを読んでください)

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

于 2013-01-02T14:36:02.813 に答える
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

クラス内にあるため、「$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

コンストラクターを見ると、配列でなければならない $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 に答える