在php中使用jquery uploadify进行多图片上传
jquery uploadify是一款Ajax风格的批量图片上传插件,在PHP中使用jquery uploadify很方便,请按照本文介绍的方法和步骤,为你的PHP程序增加jquery uploadify插件的批量上传图片功能。
本文是以dilicms为基础,为其增加图片上传功能。
1.增加数据表dili_fieldtypes新字段:k=>image,V=>图片上传区域(VACHAR);
2.修改application/libraries/dili/Field_behavior.php,在switch中增加如下代码:
case 'image': $field=array( 'type'=>'VARCHAR', 'constraint'=>255, 'default'=>' ' ); break;
3. 修改 application/libraries/dili/Form.php 并且增加如下代码:
function _image($fileld,$default){ //$type= 'type=hidden'; //$width=($field['width'] ? $field['width'] : '570') .'px;'; //$height=($field['height'] ? $field['height'] : '415') .'px;'; return ; }
4.在content_form.php和category_content_form.php中增加判断代码:
<?php if($v['type']=="image"): ?> <div id="fileQueue"></div> <input type="file" id="uploadify" name="Filedata" /> <div> <a href="javascript('#uploadify').uploadify('upload','*')">上传</a> <a href="javascript('#uploadify').uploadify('cancel')">取消上传</a> </div> <input type="text" style="" name="<?php echo $v['name']?>" id="<?php echo $v['name']."_id"?>" value=""/> <input type="hidden" style="" name="poster" id="<?php echo $v['name']."_id_1"?>" value=""/> <link href="<?php echo $this->config->item("base_url");?>asset/js/uploadify/uploadify.css" type="text/css" rel="stylesheet" /> <script type="text/javascript" src="<?php echo $this->config->item("base_url");?>asset/js/uploadify/jquery.uploadify-3.1.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $("#uploadify").uploadify({ 'debug':false, 'swf': '<?php echo $this->config->item("base_url");?>asset/js/uploadify/uploadify.swf', 'uploader': '<?php echo $this->config->item("base_url");?>photo/savephoto', 'method':"post", 'height':30, 'width':120, 'queueID': 'fileQueue', 'auto': false, 'multi': false, 'fileTypeDesc':'只允许上传jpg格式图片', 'fileTypeExt':'*.jpg', 'fileSizeLimit' : '10MB', 'formData' : { '<?php echo session_name();?>' : '<?php echo $this->session->userdata('session_id');?>' }, 'onUploadError' : function (file,errorCode,errorMsg,errorString) { alert('The file ' + file.name + ' could not be uploaded: ' + errorString); }, 'onUploadSuccess':function(file,data,response){ alert(data); $("#<?php echo $v['name']."_id"?>").val(data); $("#<?php echo $v['name']."_id_1"?>").val(data); } }); }) </script> <?php endif;?>
6. 新建photo.php文件:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); date_default_timezone_set('Asia/Shanghai'); class Photo extends Front_Controller{ public function __construct() { parent::__construct(); } function _getFilePath() { $path="attachments/".date("Y")."/"; if(!file_exists($path)){ mkdir($path,'777'); } $path.=date("m")."/"; if(!file_exists($path)){ mkdir($path,'777'); } return $path; } function _creat_photothumbs($FileName,$setW){ $IMGInfo= getimagesize($FileName); if(!$IMGInfo) return false; if($IMGInfo['mime']== "image/pjpeg" || $IMGInfo['mime']=="image/jpeg"){ $ThisPhoto= imagecreatefromjpeg($FileName); }elseif($IMGInfo['mime']== "image/x-png" || $IMGInfo['mime']== "image/png"){ $ThisPhoto= imagecreatefrompng($FileName); }elseif($IMGInfo['mime']== "image/gif"){ $ThisPhoto=imagecreatefromgif($FileName); } $width=$IMGInfo['0']; $height=$IMGInfo['1']; $scale=$height/$width; $nw=$setW; $nh=$nw*$scale; $NewPhoto=imagecreatetruecolor($nw,$nh); imagecopyresampled($NewPhoto,$ThisPhoto,0,0,0,0,$nw,$nh,$width,$height); ImageJpeg ($NewPhoto,$FileName); return true; } function _savephoto_post(){ $dest_dir =$this->_getFilePath(); if (!empty($_FILES)) { $date = date('Ymd'); //$dest_dir =$this->_getFilePath(); $photoname = $_FILES["Filedata"]['name']; $phototype = $_FILES['Filedata']['type']; $photosize = $_FILES['Filedata']['size']; $fileInfo=pathinfo($photoname); $extension=$fileInfo['extension']; $newphotoname = date("YmdHis").mt_rand(10000,99999).'.'.$extension; $dest=$dest_dir.$newphotoname; //move_uploaded_file($_FILES['Filedata']['tmp_name'], iconv("UTF-8","gb2312",$dest)); move_uploaded_file($_FILES['Filedata']['tmp_name'], $dest); //chmod($dest, 0755); //如果宽度大于600则要进行裁剪 $arr=getimagesize($dest); if($arr[0]>600){ $thumb_w=600; $this->_creat_photothumbs($dest,$thumb_w); } //生成缩略图 $config2['image_library'] = 'gd2'; $config2['source_image'] = $dest; $config2['create_thumb'] = TRUE; $config2['maintain_ratio'] = TRUE; $config2['width'] = 170; $config2['height'] = 150; $config2['master_dim']="width"; $config2['thumb_marker']="_1"; $this->load->library('image_lib', $config2); $this->image_lib->resize(); echo $dest; } } } ?>
好了,可以测试了。
一、推荐使用迅雷或快车等多线程下载软件下载本站资源。
二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。
三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!
四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.
五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。
六、如需转载本站资源,请注明转载来自并附带链接
七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com
大家评论
站长推荐
点击排行
- 1CSS控制文字在Div最底部显示
- 2Thinkphp5如何配置IP+端口访问项目模块
- 3elementUI el-dialog弹框居中
- 4教你如何搭建及优化站点
- 5国内互联网视频行业运营分析
- 6service mysql start出错,mysql不能启动,解决mysql: unrecognized service错误
- 7CSS实现悬浮顶部的Div工具栏
- 8记一次Thinkphp5.1框架mysql数据库崩溃(SQLSTATE [08004] Too many connections)
- 9连接SQL Server数据库提示:Login failed for user 'sa'错误的解决方案
- 10Thinkphp3.2在centos7上设置计划任务的方法