1

我想使用 Yii 的 Efineuploader 插件上传图像,但我不知道uploadStoredFiles一旦用户查看了预览缩略图(通过 ajax on onComplete)如何调用上传图像的方法。我不知道是否有办法从小部件中调用它,或者我是否可以使用外部按钮来使用它。

这是我的代码:

$this->widget('ext.EFineUploader.EFineUploader',
            array(
                  'id'=>'FineUploader',
                  'config'=>array(
                                  'autoUpload'=>false,
                                  'request'=>array(
                                     'endpoint'=>$this->createAbsoluteUrl('articulo/upload'),//'/files/upload',// OR $this->createUrl('files/upload'),
                                     'params'=>array('YII_CSRF_TOKEN'=>Yii::app()->request->csrfToken),
                                                  ),
                                  'retry'=>array('enableAuto'=>true,'preventRetryResponseProperty'=>true),
                                  'chunking'=>array('enable'=>true,'partSize'=>100),//bytes
                                  'template'=>'<div class="qq-uploader span4" style="float:left;"><div class="qq-upload-button btn">Seleccionar</div><div class="qq-upload-button btn">Enviar</div><br/><br/><ul class="qq-upload-list"></ul><br/></div>',
                                  'callbacks'=>array(
                                                   'onComplete'=>"js:function(id, name, response)
                                                       {
                                                       $.post(
                                                            '".Yii::app()->baseUrl . "/articulo/mostrarImagen', 
                                                            {'nombre': response[\"filename\"]},
                                                            function(respuesta)
                                                            {
                                                                $('#imagenSubida').html(respuesta);
                                                            }
                                                        )
                                                       }",
                                                   //'onError'=>"js:function(id, name, errorReason){ }",
                                                    ),
                                  'validation'=>array(
                                            'allowedExtensions'=>array('jpg','jpeg'),
                                            'sizeLimit'=>5*1024 * 1024,//maximum file size in bytes
                                            'minSizeLimit'=>100*1024,// minimum file size in bytes
                                            ),
                                 )
                 ));

提前致谢

4

1 回答 1

0

确保表单具有 enctype='multipart/form-data' 属性集

在您放置的端点参数中

'endpoint'=>$this->createAbsoluteUrl('articulo/upload'),

所以去articulo控制器,创建一个actionUpload函数并让函数处理上传

使用 $_FILES 变量获取有关上传文件的信息,您可以尝试使用函数 move_uploaded_file 或复制将其移动到永久文件夹。如果您使用的是 chrome,请在开发人员工具中找到网络面板,这样您就可以调试 ajax 请求和答案

于 2013-10-12T06:41:21.267 回答