0

私はCakePHPのアップロードプラグインを使用していて、パスを書き込んだり、画像のサイズを変更したり、画像を保存したりするように変更することができました。しかし、ここで、画像を保存する関数にpId変数(int)を渡したいと思います。

仕組みは次のとおりです。1)次のaddpictures.ctpがあります。

$result = $this->Upload->upload('Projects/'.$projects['Project']['id'], $this->Form->field['Project.id'], $projects['Project']['id']);
    echo $result;

これは問題なく機能します。(3番目の引数であるプロジェクトIDを追加したことに注意してください。)2)呼び出される関数は次のようになります。

public function upload($model, $id, $pId){
        $result =  $this->edit($model, $id, $pId);
        return $result;
    }

これはPluging/AjaxMultiUpload / View / Helper/UploadHelper.php内にあります

3)これで、(同じファイル内の)編集機能は次のようになります。

public function edit ($model, $id, $pId) {
    require_once (ROOT . DS . APP_DIR . "/Plugin/AjaxMultiUpload/Config/bootstrap.php");


$dir = Configure::read('AMU.directory');
        if (strlen($dir) < 1) {
                    $dir = "files";
                }

        $webroot = Router::url("/") . "ajax_multi_upload";
        // Replace / with underscores for Ajax controller
        $lastDir = str_replace ("/", "___", 
            $this->last_dir ($model, $id));
        $str = <<<END
            <br /><br />
            <link rel="stylesheet" type="text/css" href="$webroot/css/fileuploader.css" />
            <script src="$webroot/js/fileuploader.js" type="text/javascript"></script>
            <div id="AjaxMultiUpload">
                <noscript>
                     <p>Please enable JavaScript to use file uploader.</p>
                </noscript>
            </div>
            <script src="$webroot/js/fileuploader.js" type="text/javascript"></script>
            <script>        
                function createUploader(){            
                    var uploader = new qq.FileUploader({
                        element: document.getElementById('AjaxMultiUpload'),
                        action: '$webroot/uploads/upload/$lastDir/',
                                                pid: '$pId',
                        debug: true
                    });           
                }
                window.onload = createUploader;     
            </script>
END;
                $str .= $this->view ($model, $id, true);
        return $str;
}

ここで、次を追加しました。

pid: '$pId',

ご覧のとおり、インスタンスの作成です。今、このスクリプトは魔法が起こる場所であり、私が概要を失う場所です。スクリプトは本当に長いです、すみませんが、私は本当に何をすべきかわかりません...


http://jsfiddle.net/sbX8a/

そして、ここのどこかで、ヘルパーに渡した$pIdを取得したいと思います。

どうすればこれを達成できますか?

私は完全に道に迷い、2日後にそれをじっと見つめ、それをいじくり回した後、私は道に迷いました。

ご挨拶、危害。

バンプ?

4

1 に答える 1

0

このようにして、アップローダーコードを編集してください

            function createUploader(){            
                var uploader = new qq.FileUploader({
                    element: document.getElementById('AjaxMultiUpload'),
                    action: '$webroot/uploads/upload/$lastDir/',
                    debug: true,
                    params: {
                        pid: 123,
                        another: "asd"
                    }
                });           
            }
于 2012-05-24T11:53:26.443 に答える