YII框架下整合上传插件EFineUploader
来源:互联网 发布:淘宝静电手环有用吗 编辑:程序博客网 时间:2024/05/15 13:40
1.下载EFineUploader,解压到ext目录下
2.视图层通过以下代码调用
<?php $this->widget('ext.EFineUploader.EFineUploader',
array(
'id'=>'FineUploader',
'config'=>array(
'autoUpload'=>true,
'request'=>array(
'endpoint'=>$this->createUrl('upload'),
'params'=>array('YII_CSRF_TOKEN'=>Yii::app()->request->csrfToken)
),
'retry'=>array('enableAuto'=>true,'preventRetryResponseProperty'=>true),
'chunking'=>array('enable'=>true,'partSize'=>100),//bytes
'callbacks'=>array(
'onComplete'=>"js:function(id, name, response){ }",
'onError'=>"js:function(id, name, errorReason){ }",
),
'validation'=>array(
'allowedExtensions'=>array('jpg','jpeg'),
'sizeLimit'=>2 * 1024 * 1024,//maximum file size in bytes
'minSizeLimit'=>0,// minimum file size in bytes
),
)
));
?>
这里需要修改的地方包括endpoint参数,改成后台响应的php url,
注意去掉callbacks数组的注释
3.控制器里新加一个ACTION响应
public function actionUpload()
{
$tempDir = '/upload/'.date('Ym').'/'.date('d').'/';
$tempFolder=Yii::getPathOfAlias('webroot').'/upload/'.date('Ym').'/'.date('d').'/';
if(!is_dir($tempFolder))
{
mkdir($tempFolder, 0777, TRUE);
mkdir($tempFolder.'chunks', 0777, TRUE);
}
Yii::import("ext.EFineUploader.qqFileUploader");
$uploader = new qqFileUploader();
$uploader->allowedExtensions = array('jpg','jpeg','png','gif');
$uploader->sizeLimit = 2 * 1024 * 1024;//maximum file size in bytes
$uploader->chunksFolder = $tempFolder.'chunks';
$ext = substr($_FILES['qqfile']['name'], strrpos($_FILES['qqfile']['name'],'.')) ;
$name = (microtime()*1000000).$ext;
$result = $uploader->handleUpload($tempFolder,$name);
$result['folder'] = $webFolder;
$result['filename'] = $tempDir.$name;
$uploadedFile=$tempFolder.$name;
header("Content-Type: text/plain");
$result=htmlspecialchars(json_encode($result), ENT_NOQUOTES);
echo $result;
Yii::app()->end();
}
我这里没有使用官方给出的示例,修改了上传的目录
此函数会返回一个JSON数组,在CALLBACKS里面可以用RESPONSE调用
所以我把callbacks数组里的oncomplete改成了
'onComplete'=>"js:function(id, name, response){ $('#VendorProducts_product_img').val(response.filename);$('#imgLink').attr('href',response.filename) }",
完成上传后进行的一系列浏览器端操作
NOTE:
PHP noticeUndefined variable: postParamsC:\xampp\htdocs\elibrary\public\protected\extensions\EFineUploader\EFineUploader.php(117)117 $config['params']=$postParams;可能会出现notice错误 解决方法是注释掉
EfineUploader.php 117行
- YII框架下整合上传插件EFineUploader
- yii框架下富文本编辑插件---ueditor插件详解
- SAE下整合头像上传插件
- yii框架图片上传
- yii框架ajax上传
- yii 框架中的上传
- Yii框架图片上传
- yii框架文件上传
- yii框架文件上传
- yii框架AR模式整合
- Yii框架中文件上传
- yii框架中文件上传
- yii框架中的文件上传
- yii框架csv格式上传
- yii 框架中的上传 分页
- Yii框架 上传图片接口
- Yii框架单文件上传
- yii框架中文件上传
- 完成思路
- spinner级联操作
- 一个小时内学习SQLite数据库
- Loadrunner场景设置
- [C++]C++学习笔记(二)
- YII框架下整合上传插件EFineUploader
- 初探TI SYSLINK模块下Notify使用
- NYOJ 839 合并(vector)
- camel route 创建顺序
- win8系统视频格式转换器
- Android中的两把锁
- 何谓可分页和非分页内存
- Linux 下SVN使用
- C#:调用API函数,弹出对话框更改打印机默认设置(神贴啊)