Uploadify达成图片上传成效,2简练消除多文本上传只上传一张的难点ca88会员登录中心:

ca88会员登录中心

html轻松页面:

首先,将下载的Uploadify压缩包解压放到公共文件夹内。完毕代码如下:

文件上传是非常多PHP程序项目中广大的叁个效果与利益,前几东瀛文就来享受三个完整的实例,来兑现ThinkPHP文件上传的作用。具体方法如下:

ca88会员登录中心 1

前台html部分:

一、action部分:

index.html代码:

<script src="/uploadify/jquery.min.js" data-ke-src="/Public/uploadify/jquery.min.js" type="text/javascript">
<script src="/uploadify/jquery.uploadify.min.js" data-ke-src="/Public/uploadify/jquery.uploadify.min.js" type="text/javascript">
<link rel="stylesheet" type="text/css" href="/uploadify/uploadify.css" data-ke-src="/Public/uploadify/uploadify.css">
<script type="text/javascript">
var img_id_upload=new Array();//初始化数组,存储已经上传的图片名
var i=0;//初始化数组下标
$(function() {
 $('#file_upload').uploadify({
 'auto' : false,//关闭自动上传
 'removeTimeout' : 600,//文件队列上传完成1秒后删除
 'swf' : '/Public/uploadify/uploadify.swf',
 'uploader' : '/_URL_/Article/uploadify',
 'method' : 'post', //方法,服务端可以用$_POST数组获取数据
 'buttonText' : '选择图片',//设置按钮文本
 'multi' : true,//允许同时上传多张图片
 'uploadLimit' : 8,//一次最多只允许上传10张图片
 'fileTypeDesc' : 'Image Files',//只允许上传图像
 'fileTypeExts' : '*.gif; *.jpg; *.png',//限制允许上传的图片后缀
 'fileSizeLimit' : '2000KB',//限制上传的图片大小
 'onUploadSuccess' : function(file, data, response) { //每次成功上传后执行的回调函数,从服务端返回数据到前端
$('#image').append('<div style="float:left;margin:2px 0 0 2px"><img width="100px" height="100px" src="/uploads/'+data+'" data-ke-src="/uploads/'+data+'" height=80 width=80 />');
 img_id_upload[i]=data;
 i++;
 }
 });
});
</script>
<input type="file" name="file_upload" id="file_upload" />
<p><a href="javascript:$('#file_upload').uploadify('upload','');" data-ke-src="javascript:$('#file_upload').uploadify('upload','');">上传</a>
</p>
<br />
<div id="image" class="image"><br />

FileAction.class.php页面代码如下:

<form action="{:U('index/upload')}" method="post" enctype="multipart/form-data">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 <input type="submit" value = "提交">
</form>

action实践代码部分:

<?php
class FileAction extends Action{
  function index(){
    $file=M('file');
    $list=$file->select();
    $this->assign('filelist',$list);
    $this->display();  
  }  
  function upload(){
    //文件上传地址提交给他,并且上传完成之后返回一个信息,让其写入数据库  
    if(empty($_FILES)){
      $this->error('必须选择上传文件');  
    }else{
      $a=$this->up();
      if(isset($a)){
        //写入数据库的自定义c方法
        if($this->c($a)){
          $this->success('上传成功');  
        }
        else{
          $this->error('写入数据库失败');  
        }
      }else{
        $this-error('上传文件异常,请与系统管理员联系');  
      }
    }
  }
  private function c($data){
    $file=M('file');
    $num  =  '0';
    for($i = 0; $i < count($data)-1; $i++) {
      $data['filename']=$data[$i]['savename'];      
      if( $file->data($data)->add())
      {
        $num++;
      }
    }
    if($num==count($data)-1)
    {
      return true;  
    }else
    {
      return false;
    }
  }
  private function up(){
    //完成与thinkphp相关的,文件上传类的调用  
    import('@.Org.UploadFile');//将上传类UploadFile.class.php拷到Lib/Org文件夹下
    $upload=new UploadFile();
    $upload->maxSize='1000000';//默认为-1,不限制上传大小
    $upload->savePath='./Public/Upload/';//保存路径建议与主文件平级目录或者平级目录的子目录来保存  
    $upload->saveRule=uniqid;//上传文件的文件名保存规则
    $upload->uploadReplace=true;//如果存在同名文件是否进行覆盖
    $upload->allowExts=array('jpg','jpeg','png','gif');//准许上传的文件类型
    $upload->allowTypes=array('image/png','image/jpg','image/jpeg','image/gif');//检测mime类型
    $upload->thumb=true;//是否开启图片文件缩略图
    $upload->thumbMaxWidth='300,500';
    $upload->thumbMaxHeight='200,400';
    $upload->thumbPrefix='s_,m_';//缩略图文件前缀
    $upload->thumbRemoveOrigin=1;//如果生成缩略图,是否删除原图

    if($upload->upload()){
      $info=$upload->getUploadFileInfo();
      return $info;
    }else{
      $this->error($upload->getErrorMsg());//专门用来获取上传的错误信息的  
    }  
  }
}
?>

控制器IndexController.class.php代码:

public function uploadify()
 {
 $ph=M('Upload');
 import('ORG.Net.UploadFile');
 $upload = new UploadFile();// 实例化上传类
 $upload->maxSize = 93145728 ;// 设置附件上传大小
 $upload->saveRule =rand(1,9999);
 $upload->allowExts = array('jpg', 'gif', 'png', 'jpeg','flv','avi','mov');// 设置附件上传类型
 $upload->savePath = './Uploads/';// 设置附件上传目录
 if(!$upload->upload())
 {// 上传错误提示错误信息
 $this->error($upload->getErrorMsg());
 }else{// 上传成功 获取上传文件信息
 $info = $upload->getUploadFileInfo();
 }
 for($i=0;$i<count($info);$i++)
 {
 $data['name']=$info[$i]['savename'];
 $data['size']=$info[$i]['size'];
 $data['type']=$info[$i]['extension'];
 echo $info[$i]['savename'];
 $rs=$ph->add($data); 
 }
 /*if($rs)
 {
 $this->success("成功");
 }else
 {
 $this->error("失败");
 }*/
 }

二、view模板部分:

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
 public function index(){
  $this->display();
 }
 public function upload(){
  if(IS_POST){
   $config = array(
    'maxSize' => 3145728,
    'rootPath' => './Uploads/',
    'savePath' => '',
    'saveName' => array('uniqid', mt_rand(1,999999).'_'.md5(uniqid())),
    'exts'  => array('jpg', 'gif', 'png', 'jpeg'),
    'autoSub' => true,
    'subName' => array('date','Ymd'),
   );
   $upload = new \Think\Upload($config);// 实例化上传类
   $info = $upload->upload();
   if(!$info) {
    $this->error($upload->getError());
   }else{
    foreach($info as $file){
     echo $file['savepath'].$file['savename'];
    }
   }
  }else{
   $this->display();
  }
 }
}

越来越多关于thinkPHP相关内容感兴趣的读者可查看本站专项论题:《ThinkPHP入门教程》、《thinkPHP模板操作技艺总计》、《ThinkPHP常用艺术总计》、《smarty模板入门基础教程》及《PHP模板才干总括》。

模板文件index.html代码如下:

上传结果显示:

期待本文所述对我们基于ThinkPHP框架的PHP程序设计有着协助。

<html>
<body>
<volist name="filelist" id="vo">
 小图:<img src="__PUBLIC__/upload/s_{$vo['filename']}" /><br />
 大图:<img src="__PUBLIC__/upload/m_{$vo['filename']}" /><br />
</volist>
<form action="__URL__/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="file[]" /><br />
  <input type="file" name="file[]" /><br />
  <input type="file" name="file[]" /><br />
  <input type="submit" value="上传" />
</form>

</body>
</html>

ca88会员登录中心 2ca88会员登录中心 3

你或然感兴趣的篇章:

  • ThinkPHP文件上传实例教程
  • ThinkPHP结合AjaxFileUploader完成无刷新文件上传的法子
  • Thinkphp多文件上传完成格局
  • thinkPHP3.2轻便达成公文上传的章程
  • 封装ThinkPHP的一个文书上传方法实例
  • ThinkPHP完毕带验证码的文本上传成效实例
  • Thinkphp3.2简单消除多文本上传只上传一张的标题
  • layui框架完成文件上传及TP3.2.3(thinkPHP)对上传文件进行后台管理操作示例
  • 消除ThinkPHP下使用上传插件Uploadify浏览器firefox报302破绽百出的情势
  • 听新闻说ThinkPHP+uploadify+upload+PHPExcel
    无刷新导入数据
  • ca88会员登录中心,Thinkphp+smarty+uploadify实现无刷新上传
  • Thinkphp5+uploadify达成的文件上传作用示例

深信本文所述实例对大家的ThinkPHP程序支付能够起到一定的借鉴意义。

许五人在进行多文件上传的时候,最终开掘只是上传了一张,重要正是命名所致,因为是一模一样的名字,所以最后就剩一张图纸
消除措施:第一种:

您或然感兴趣的篇章:

  • ThinkPHP结合AjaxFileUploader达成无刷新文件上传的办法
  • Thinkphp多文件上传达成格局
  • thinkPHP3.2简单完毕公文上传的措施
  • 封装ThinkPHP的二个文书上传方法实例
  • ThinkPHP完毕带验证码的文件上传效能实例
  • Thinkphp3.2简单消除多文本上传只上传一张的标题
  • layui框架贯彻文件上传及TP3.2.3(thinkPHP)对上传文件进行后台管理操作示例
  • 行使ThinkPHP+Uploadify达成图片上传功用
  • 化解ThinkPHP下使用上传插件Uploadify浏览器firefox报302破绽百出的点子
  • 听别人讲ThinkPHP+uploadify+upload+PHPExcel
    无刷新导入数据
  • Thinkphp+smarty+uploadify完毕无刷新上传
  • Thinkphp5+uploadify落成的公文上传成效示例
$config = array(
    'maxSize' => 3145728,
    'rootPath' => './Uploads/',
    'exts'  => array('jpg', 'gif', 'png', 'jpeg'),
    'autoSub' => true,
    'subName' => array('date','Ymd'),
    'saveRule' => '',
   );

置空$config里面包车型地铁saveRule,上传后的名号为:59c8d38cdb968.jpg

ca88会员登录中心 4

借使感觉这种命名离谱,可利用第二种情势:

$config = array(
    'maxSize' => 3145728,
    'rootPath' => './Uploads/',
    'saveName' => array('uniqid', mt_rand(1,999999).'_'.md5(uniqid())),
    'exts'  => array('jpg', 'gif', 'png', 'jpeg'),
    'autoSub' => true,
    'subName' => array('date','Ymd'),
   );

设置$config中: ‘saveName’ => array(‘uniqid’,
mt_rand(1,999999).’_’.md5(uniqid())),

其最终的结果类似于:672563_30ad4d8a2aafc832363de8edc1940b5c59c8d44a303f9.jpg

ca88会员登录中心 5

然,命名可依照供给活动修改,多文本上传方法相当多,这里只是提供个差不离方便的办法!

以上那篇Thinkphp3.2轻便化解多文件上传只上传一张的标题正是我分享给我们的整体内容了,希望能给我们二个仿效,也希望大家多多帮助脚本之家。

你也许感兴趣的篇章:

  • ThinkPHP文件上传实例教程
  • ThinkPHP结合AjaxFileUploader实现无刷新文件上传的议程
  • Thinkphp多文件上传完成格局
  • thinkPHP3.2轻便完毕文件上传的方法
  • 封装ThinkPHP的四个文件上传方法实例
  • ThinkPHP完结带验证码的公文上传作用实例
  • layui框架兑现文件上传及TP3.2.3(thinkPHP)对上传文件实行后台管理操作示例
  • 行使ThinkPHP+Uploadify完毕图片上传效率
  • 缓和ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的主意
  • 听新闻说ThinkPHP+uploadify+upload+PHPExcel
    无刷新导入数据
  • Thinkphp+smarty+uploadify达成无刷新上传
  • Thinkphp5+uploadify实现的公文上传功效示例

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图