0

0

php怎么实现多图上传

藏色散人

藏色散人

发布时间:2021-11-01 09:21:06

|

5302人浏览过

|

来源于php中文网

原创

php实现多图上传的方法:1、创建html代码并加载swfupload组件和flash;2、在php里处理上传并且返回上传图片的地址;3、通过ajax调用php;4、把图片的地址保存到数据库即可。

php怎么实现多图上传

本文操作环境:Windows7系统、thinkphp v5.1版、DELL G3电脑

php怎么实现多图上传?

php实现多图上传的方法:

先上一张图片给大家看看效果,有需要就下载学习。不一定非要在ThinkPHP里,只是我目前是去学习使用ThinkPHP做开发罢了。

立即学习PHP免费学习笔记(深入)”;

     

 0cc1794b573d37626e39bc142c21f15.png

    【准备工作】现在需要的东西是,下载一个swfupload.js网上很多,自己百度吧。先说明思路或流程,然后再上代码。

     整个多图上传的流程

    1.写好html代码,包括上传以后即显示的效果的html代码,以及加载swfupload组件和flash

    2.在添加图片以后上传到php里处理上传并且返回上传图片的地址,加载到预览区域里。

    3.点击每张图片右上角的 X 以后,ajax调用php的方法去删除预览区域的图片。

    4.在添加图片和删除预览区域的图片的同时,都会更改一个隐藏域的值,这样在完成整个上传提交表单以后可以把图片的地址保存到数据库。(看需要)

    【代码部分】先写html代码。(css文件就不贴了)

    






flash无刷新多图片上传








     

    详细说一下swfupload的配置项

    upload_url   是上传图片处理的php地址

    file_size_limit   上传大小限制

    file_upload_limit    限制用户一次性最多上传多少张图片,0为不限制

    file_queue_error_handler

    file_dialog_complete_handler   添加文件上传选择框关闭以后执行的方法

    upload_error_handler     文件上传错误的时候执行的方法

    手机端实现多图片上传预览
    手机端实现多图片上传预览

    手机端实现多图片上传预览

    下载

    upload_success_handler   文件上传成功以后执行的方法

    upload_complete_handler    文件上传完成以后执行的方法

    debug: false     想研究swfupload的可以把这个设置为true,调试模式

    接下来就是上传图片的php代码,此处用的TP的上传类,简单,容易懂

     

    function uploadImg() {
    import('ORG.Net.UploadFile');
    $upload = new UploadFile();// 实例化上传类
    $upload->maxSize  = 3145728 ;// 设置附件上传大小
    $upload->allowExts  = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
    $savepath='./uploads/'.date('Ymd').'/';
    if (!file_exists($savepath)){
    mkdir($savepath);
    }
    $upload->savePath =  $savepath;// 设置附件上传目录
    if(!$upload->upload()) {// 上传错误提示错误信息
    $this->error($upload->getErrorMsg());
    }else{// 上传成功 获取上传文件信息
    $info =  $upload->getUploadFileInfo();
    }
    print_r(J(__ROOT__.'/'.$info[0]['savepath'].'/'.$info[0]['savename']));
    }

     

     

    上传成功以后,echo或者print_r输出地址,因为它用的是ajax的方式。

     

    预览区域设置的代码

    function uploadSuccess(file, serverData){
    addImage(serverData);
    var $svalue=$('form>input[name=s]').val();
    if($svalue==''){
    $('form>input[name=s]').val(serverData);
    }else{
    $('form>input[name=s]').val($svalue+"|"+serverData);
    }
    }
    function addImage(src){
    var newElement = "
  • @@##@@@@##@@
  • "; $("#pic_list").append(newElement); $("img.button").last().bind("click", del); }

     

    serverData就是在php里返回的图片地址,在返回以后,直接调用addImage方法,将地址加载到一个ul里。同时更新隐藏域里的值

    删除图片设置

    var del = function(){
    //    var fid = $(this).parent().prevAll().length + 1;
    var src=$(this).siblings('img').attr('src');
    var $svalue=$('form>input[name=s]').val();
    $.ajax({
    type: "GET", //访问WebService使用Post方式请求
    url: window.url+"/del", //调用WebService的地址和方法名称组合---WsURL/方法名
    data: "src=" + src,
    success: function(data){
    var $val=$svalue.replace(data,'');
    $('form>input[name=s]').val($val);
    }
    });
    $(this).parent().remove();
    }

     

    ajax方式,提交到php方式,成功则更新隐藏域里的val,并且销毁元素。

    function del() {
    $src=str_replace(__ROOT__.'/', '', str_replace('//', '/', $_GET['src']));
    if (file_exists($src)){
    unlink($src);
    }
    print_r($_GET['src']);
    exit();
    }

     

    删除的方法很简单,就是删除ajax提交过来的地址的文件,并且返回删除的地址,ajax会处理并且自动更新隐藏域的val

     

     

    整个ThinkPHP+swfupload上传图片的方法就完成了,很简单~

    推荐学习:《PHP视频教程

    php怎么实现多图上传php怎么实现多图上传

    相关文章

    PHP速学教程(入门到精通)
    PHP速学教程(入门到精通)

    PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

    更多
    php文件怎么打开
    php文件怎么打开

    打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

    2409

    2023.09.01

    php怎么取出数组的前几个元素
    php怎么取出数组的前几个元素

    取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

    1553

    2023.10.11

    php反序列化失败怎么办
    php反序列化失败怎么办

    php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

    1450

    2023.10.11

    php怎么连接mssql数据库
    php怎么连接mssql数据库

    连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

    951

    2023.10.23

    php连接mssql数据库的方法
    php连接mssql数据库的方法

    php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

    1414

    2023.10.23

    html怎么上传
    html怎么上传

    html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

    1233

    2023.11.03

    PHP出现乱码怎么解决
    PHP出现乱码怎么解决

    PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

    1445

    2023.11.09

    php文件怎么在手机上打开
    php文件怎么在手机上打开

    php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

    1305

    2023.11.13

    Java 项目构建与依赖管理(Maven / Gradle)
    Java 项目构建与依赖管理(Maven / Gradle)

    本专题系统讲解 Java 项目构建与依赖管理的完整体系,重点覆盖 Maven 与 Gradle 的核心概念、项目生命周期、依赖冲突解决、多模块项目管理、构建加速与版本发布规范。通过真实项目结构示例,帮助学习者掌握 从零搭建、维护到发布 Java 工程的标准化流程,提升在实际团队开发中的工程能力与协作效率。

    4

    2026.01.12

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    PHP课程
    PHP课程

    共137课时 | 8.5万人学习

    JavaScript ES5基础线上课程教学
    JavaScript ES5基础线上课程教学

    共6课时 | 6.9万人学习

    PHP新手语法线上课程教学
    PHP新手语法线上课程教学

    共13课时 | 0.8万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号