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;

这很好用。(请注意,我添加了第三个参数,即项目 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/

在这里的某个地方,我想获得我在 Helper 中传递的 $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 回答