多张图片上传 [ 新手入门 ]
参照http://www.yiiframework.com/extension/lcswfupload 中文说明 SWFUpload Yii文件上传 整合 swfupload
1.flash文件上传
2.支持多文件同时上传
3.显示文件上传进度条
Requirements Yii 1.1 or above
Usage SWFUpload 图片上传
第一步:在控制器类里面载入SWFUploadAction
public function actions() {
return array(
'upload'=>array(
'class'=>'application.extensions.swfupload.SWFUploadAction',
'filepath'=>'/var/www/yourpath/yourfilename.EXT', //注意这里是绝对路径,.EXT是文件后缀名替代符号
)
);
}
说明: 你必须要有这个upload action的权限,可以在accessRules函数中添加upload action 的访问权限
1.filepath 文件的完整上传路径 包括文件名 如: C:/file/logo.EXT 后缀名是用户上传的文件决定所以在这里只需要用 .EXT 替代
2.SWFUploadAction支持两个事件 onBeforeUpload 和 onAfterUpload
第二步:在视图中调用widget
<?php $this->widget('application.extensions.swfupload.SWFUpload',array('callbackJS'=>'swfupload_callback'));
?>
说明: callbackJS 是图片上传后执行的js函数 函数定义格式如下:
第一参数是文件名字name,
第二参数是文件路径path,
第三参数是oldname是文件的原始名字,
javascript代码如下:
function swfupload_callback(name,path,oldname)
{
$("#Sponsor_logo").val(name);
$("#thumbnails_1").html("<img src='"+path+"/"+name+"?"+(new Date()).getTime()+"' />");
}
整理一下到代码中是这样的: controller页面中
public function accessRules()
{
return array(
array('allow',
'actions'=>array('upload'),
'users'=>array('*'),
),
......
);
}
public function actions() {
return array(
'upload'=>array(
'class'=>'application.extensions.swfupload.SWFUploadAction',
'filepath'=>'/var/www/yourpath/yourfilename.EXT', // 'EXT' will be replaced by file extension
'onAfterUpload'=>array($this,'saveFile'),
)
);
}
public function saveFile($event)
{
//$event->sender['uploadedFile'] is CUploadedFile
//$event->sender['uploadedFile']->name; the original name of the file being uploaded
// $event->sender['name'] yourfilename.EXT
// do something ......
}
view的页面中
<?php
$this->widget('application.extensions.swfupload.SWFUpload',array(
'callbackJS'=>'swfupload_callback',
)
);
?>
<input type="text" name="image_name" id="image_name" />
<script>
function swfupload_callback(name,path,oldname)
{
$("#image_name").val(name);
$("#thumbnails_1").html("<img src='"+path+"/"+name+"?"+(new Date()).getTime()+"' />");
}
</script>
那个网站的中文解释就是这样的,我照着做了,可是还是不能用,我也没有理解。 首先我下载了扩展,就按照这个写的 我不理解这个地方:
'filepath'=>'/var/www/yourpath/yourfilename.EXT', // 'EXT' will be replaced by file extension
不可能把上传的文件指定是哪个啊,而且这个地方也不知道有什么用:
public function saveFile($event)
{
//$event->sender['uploadedFile'] is CUploadedFile
//$event->sender['uploadedFile']->name; the original name of the file being uploaded
// $event->sender['name'] yourfilename.EXT
// do something ......
}
还有
<script>
function swfupload_callback(name,path,oldname)
{
$("#image_name").val(name);
$("#thumbnails_1").html("<img src='"+path+"/"+name+"?"+(new Date()).getTime()+"' />");
}
</script>
这个怎么传name,path,oldname这3个值啊,脑子很糊涂啊
wqq1207
注册时间:2011-05-04
最后登录:1970-01-01
在线时长:0小时0分
最后登录:1970-01-01
在线时长:0小时0分
- 粉丝0
- 金钱175
- 威望0
- 积分175