博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ajax上传图片的本质
阅读量:4603 次
发布时间:2019-06-09

本文共 2862 字,大约阅读时间需要 9 分钟。

422101-20160305165612143-915602815.png

1.图片上传到服务器。

2.后台将图片地址传到html页面,以图片形式展现。

3.后天将图片地址加入到input表单中,表单处于隐藏状态。

4.前端删除图片,通过js操作,移除图片与表单数据。

5.图片上传表单,是单独的。不能嵌套在总的表单中。

6.牛逼的图片上传,可以对图片进行处理。压缩,加水印等。

7.点击btn,触发图片点击,图片改变之后,触发图片表单提交。

  • 点击按钮
  • 上传表单
  • 触发事件
$("#up_btn").click(function () {            $("#carousel-photoimg").click();        });$('#carousel-photoimg').on('change', function(){            var status = $("#up_status");            var btn = $("#up_btn");            $("#imageform").ajaxForm({                target: '#carousel-preview',                 beforeSubmit:function(){ // 提交前,用加载的图片显示                    status.show();                    btn.hide();                },                 success:function(){ // 提交后,加载的图片显示                    status.hide();                    btn.show();                },                 error:function(){                    status.hide();                    btn.show();            } }).submit();        });
  • 后端验证与处理
function carouselUpload() {        $path = "Uploads/Store/goods/".date("Ymd").'/';        if (!file_exists($path)) {            mkdir($path, 0777, true);        }        $extArr = array("jpg", "png", "gif","jpeg");        if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){            $name = $_FILES['photoimg']['name'];            $size = $_FILES['photoimg']['size'];                        if(empty($name)){                echo '请选择要上传的图片';                exit;            }            $ext = $this->extend($name);            if(!in_array($ext,$extArr)){                echo '图片格式错误!';                exit;            }            if($size>(2000*1024)){                echo '图片大小不能超过2M';                exit;            }            $image_name = time().rand(100,999).".".$ext;            $tmp = $_FILES['photoimg']['tmp_name'];            if(move_uploaded_file($tmp, $path.$image_name)){                echo '
'; }else{ echo '上传出错了!'; } exit; } exit; } function extend($file_name){ $extend = pathinfo($file_name); $extend = strtolower($extend["extension"]); return $extend; }
  • 删除图片文件
function deleteImg(obj) {        $(obj).remove();        // ajax 删除图片文件        var src = $(obj).data('src');        $.ajax({           type: "POST",           url: "{sh::U('Goods/deleteImg')}",           data: "src="+src,           success: function(msg){}        });    }
// 删除图片,避免造成空间不足    public function deleteImg() {        if (IS_AJAX) {            $src = $this->_post('src');            if(!unlink($src))            {                echo "文件{$src}删除失败";            }            else            {                echo "文件{$src}删除成功";            }        }    }

转载于:https://www.cnblogs.com/jiqing9006/p/5245205.html

你可能感兴趣的文章
codevs 3314 魔法森林
查看>>
mac os x mysql 出现./mysql: unknown variable 'sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABL 问题...
查看>>
桐桐的贸易--WA
查看>>
历届试题 高僧斗法
查看>>
linux命令系列 stat & touch
查看>>
[Tools] Webstorm Github的配置与使用
查看>>
鬼谷子绝学
查看>>
用Html5与Asp.net MVC上传多个文件
查看>>
Xcode中匹配的配置包的存放目录
查看>>
JavaScript将具有父子关系的原始数据格式化成树形结构数据(id,pid)
查看>>
MySQL服务使用
查看>>
C语言练手自己编写学生成绩管理系统
查看>>
20175204 张湲祯 2018-2019-2《Java程序设计》第二周学习总结
查看>>
How to lisp Lisp output a paragraph"500 Tph Dry Process Cement Plant Machinery Manufacturers"
查看>>
OpenMobile's Application Compatibility Layer (ACL)
查看>>
竞价广告系统-广告检索
查看>>
强哥PHP面向对象学习笔记
查看>>
[转]基于.NET平台常用的框架整理
查看>>
Symbian (Read Inbox)读取收件箱的内容
查看>>
良好的编程规范
查看>>