1第一步:引入jquery.js
2第二步:引入jquery.uploadify.js
3.第三步:引入uploadify.css
4第四步:在html加标签<input id="upload-gooods-video" type="file" name="goods_video">
第五步:添加js代码(到了这一步已经把视频传到了页面上了)
<script type="text/javascript">
$(function(){
//将upload-goods-video 替换成一个上传插件
$("#upload-goods-video").uploadify({
"height" : 30,
"width" : 120, //定义上传插件的宽和高
"swf" : "<?php echo RESOURCE_SITE_URL;?>/js/uploadify/uploadify.swf", //引入上传插件的flash
"fileObjName" : "goods_video", //以什么名字上传到服务器上.. 保存到$_FILES. 默认的名字为 'Filedata'
"buttonText" : "上传视频",
"uploader" : "<?php echo SHOP_SITE_URL; ?>/index.php?act=store_goods_add&op=video_upload", //上传给哪个url地址
'removeTimeout'
: 3, //上传后的提示在几秒后消失
'multi' : false,//是否执行多文件上传
'debug' : false, //是否开启调试模式
'formData' : {name:'goods_video',pic_url:''}, //上传图片的同时以POST的形式向服务器参数, 指定上传到又拍云的哪个空间
'fileTypeExts'
: '*.jpg; *.png; *.gif; *.bmp; *.mp4;', //指定上传的类型, 它可以帮我们验证..
'onUploadSuccess' : function(file, data, response) { //上传成功之后执行该方法
var obj = $.parseJSON(data);
//
console.log(data);
$("#video_path").val(obj.name);
//显示预览图片的div
//
$('.upload-pre-item img').attr('src','__BRAND__/'+obj.path+'!s'); //将上传后的路径设置给img的src中
//
$('.upload-img-box').show();
},
'onFallback' : function() {
alert('未检测到兼容版本的Flash.');
}
});
});
</script>
第六步:php功能代码(到了这一步已经把文件保存到文件或者upyun上面了)
//上传视频
public function video_uploadOp(){
$uploader = new UploadFile();
$uploader->set('default_dir', ATTACH_GOODS . DS . $_SESSION ['store_id'] . DS . $uploader->getSysSetPath());
$uploader->set('max_size', '10240');
$uploader->set('fprefix', $_SESSION['store_id']);
$uploader->set('allow_type', array('gif', 'jpg', 'jpeg', 'png', 'mp4'));
$result = $uploader->upload($_POST['name'],C('target'));
if (!$result) {
if (strtoupper(CHARSET) == 'GBK') {
$uploader->error = Language::getUTF8($uploader->error);
}
$output = array();
$output['error'] = $uploader->error;
$output = json_encode($output);
exit($output);
}
$video_name = $uploader->getSysSetPath() . $uploader->file_name;
$data = array ();
$data ['name'] = $video_name;
// if(C('target')=='upyun'){
// $data ['thumb_name']=UPYUN_URL.$uploader->img_url.'!240';
// }else{
// $data ['thumb_name'] = cthumb($uploader->getSysSetPath() . $uploader->thumb_image, 240, $_SESSION['store_id']);
// }
// 整理为json格式
$output = json_encode($data);
echo $output;
exit();
}
第七步:写的底层代码
/**
* 上传视频操作
*
* @param string $field
* @return bool
*/
public function upload($field,$target=''){
//上传文件
$this->upload_file = $_FILES[$field];
if ($this->upload_file['tmp_name'] == ""){
$this->setError(Language::get('cant_find_temporary_files'));
return false;
}
//对上传文件错误码进行验证
$error = $this->fileInputError();
if (!$error){
return false;
}
//验证是否是合法的上传文件
if(!is_uploaded_file($this->upload_file['tmp_name'])){
$this->setError(Language::get('upload_file_attack'));
return false;
}
//验证文件大小
if ($this->upload_file['size']==0){
$error = Language::get('upload_file_size_none');
$this->setError($error);
return false;
}
if($this->upload_file['size'] > $this->max_size*1024){
$error = Language::get('upload_file_size_cant_over').$this->max_size.'KB';
$this->setError($error);
return false;
}
//文件后缀名
$tmp_ext = explode(".", $this->upload_file['name']);
$tmp_ext = $tmp_ext[count($tmp_ext) - 1];
$this->ext = strtolower($tmp_ext);
//验证文件格式是否为系统允许
if(!in_array($this->ext,$this->allow_type)){
$error = Language::get('image_allow_ext_is').implode(',',$this->allow_type);
$this->setError($error);
return false;
}
//设置路径
$this->save_path = $this->setPath();
//设置文件名称
if(empty($this->file_name)){
$this->setFileName();
}
//是否立即弹出错误
if($this->if_show_error){
echo "<script type='text/javascript'>alert('". ($this->if_show_error_one ? $error : $this->error) ."');history.back();</script>";
die();
}
if ($this->error != '') return false;
//上传本地或者upyun
//
if($target=='upyun'){
//
require_once(BASE_DATA_PATH.'/resource/upyun/upyun.class.php');
//
$upyun=new Upyun(C('bucket'),C('user_name'),C('pwd'));
//
$opts = array(
//
UpYun::X_GMKERL_THUMBNAIL => 'thumbtype'
//
);
//
$this->img_url=DS.$this->save_path.DS.$this->file_name;
//
$fh = fopen($this->upload_file['tmp_name'], 'rb');
//
$result = $upyun->writeFile($this->img_url,$fh, True, $opts); // 上传图片,自动创建目录
//
fclose($fh);
// $this->assertTrue(is_array($result));
//
return 1;
//
}else{
if(@move_uploaded_file($this->upload_file['tmp_name'],BASE_UPLOAD_PATH.DS.$this->save_path.DS.$this->file_name)){
//删除原图
if ($this->ifremove && is_file(BASE_UPLOAD_PATH.DS.$this->save_path.DS.$this->file_name)) {
@unlink(BASE_UPLOAD_PATH.DS.$this->save_path.DS.$this->file_name);
}
return true;
}else {
$this->setError(Language::get('upload_file_fail'));
return false;
}
//
}
//
$this->setErrorFileName($this->upload_file['tmp_name']);
return $this->error;
}
相关文章
- 百度富文本编辑器ueditor/jsp版的简单使用,可上传图片和附件
- 解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
- iOS实现视频和图片的上传思路
- uploadify(jquery)插件的使用及图片上传预览
- Java中使用WebUploader插件上传大文件单文件和多文件的方法小结
- [置顶] jquery使用uploadify插件实现多文件的上传(java版)
- jquery上传插件(uploadify)的使用
- 使用jquery插件uploadify上传文件的方法与疑问
- 关于jquery文件上传插件 uploadify 3.1的使用
- 使用jquery的uploadify插件跨域上传文件