ThinkPHP5与JQuery实现图片上传和预览效果

摘要:
本文主要为您详细介绍thinkphp上传图像功能和jquery预览图像效果。具有一定的参考价值。感兴趣的合作伙伴可以参考第一张效果图:html和js代码如下:文章图片选择图片*详细说明submit˃//上传图片以立即预览功能PreviewImage{varfileextension=imgFile.value.substring;fileextension=fileextension.toLowerCase();if((fileextension!='.bmp')){alert(“抱歉,系统仅支持标准格式的照片,请调整格式并再次上传,谢谢!

内容正文

这篇文章主要为大家详细介绍了thinkphp上传图片功能,和jquery预览图片效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

 先上效果图:

ThinkPHP5与JQuery实现图片上传和预览效果第1张

html和js代码如下:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <!-- 表单提交 -->
    <form action="{:url('Index/uploadImg')}" enctype="multipart/form-data" method="post">
        <div class="form-group has-success has-feedback">
               <label for="info_photo" class="col-sm-2 control-label">物品图片</label>
               <div class="col-sm-10">

            <span class="btn btn-success btn-file"> 选择图片 <span
             class="glyphicon glyphicon-picture" aria-hidden="true"></span>
             <input type="file" name="image" value="" id="info_photo"
             onchange='PreviewImage(this)' />
            </span>
               </div>
          </div>
          <div class="form-group has-success has-feedback">
               <label for="info_desc" class="col-sm-2 control-label"><span
            style="color: red;">* </span> 详细描述</label>
               <div class="col-sm-10">
            <textarea class="form-control" rows="5" id="info_desc"
             name="info_desc" placeholder="如需补充,请填写..." title="可包含中文数字和常用字符"></textarea>
            <div id="photo_info" class="photo_info"></div>
        </div>
           <button type="submit">提交</button>
    </form>
</div>
</body>
<!-- js实现图片预览效果 -->
<script type="text/javascript">
    //上传图片立即预览
 function PreviewImage(imgFile) {
  var filextension = imgFile.value.substring(imgFile.value
    .lastIndexOf("."), imgFile.value.length);
  filextension = filextension.toLowerCase();
  if ((filextension != '.jpg') && (filextension != '.gif')
    && (filextension != '.jpeg') && (filextension != '.png')
    && (filextension != '.bmp')) {
   alert("对不起,系统仅支持标准格式的照片,请您调整格式后重新上传,谢谢 !");
   imgFile.focus();
  } else {
   var path;
   if (document.all)//IE
   {
    imgFile.select();
    path = document.selection.createRange().text;
    document.getElementById("photo_info").innerHTML = "";
    document.getElementById("photo_info").style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',sizingMethod='scale',src="http://t.zoukankan.com/"
      + path + "")";//使用滤镜效果  
   } else//FF
   {
    path = window.URL.createObjectURL(imgFile.files[0]);// FF 7.0以上
    //path = imgFile.files[0].getAsDataURL();// FF 3.0
    document.getElementById("photo_info").innerHTML = "<img       src='http://t.zoukankan.com/"+path+"'/>";
    //document.getElementById("img1").src = path;
   }
  }
 }
</script>
</html>

php代码如下:

<?php
namespace appindexcontroller;
use thinkController;
use thinkView;
use thinkRequest;

class Index extends Controller
{
    public function index()
    {
        $view = new View();
        return $view->fetch();
    }

    public function uploadImg(Request $request)
    {
        if (request()->isPost()) {
            //获取详细描述信息
            $param = $request->post();
            
            // 获取表单上传文件 例如上传了001.jpg
            $file = request()->file('image');
            // 移动到框架应用根目录/public/uploads/ 目录下
            if($file){
                $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
                if ($info) {
                    $data = ROOT_PATH .DS . 'public/uploads' . DS . $info->getSaveName();
                    echo $data;//输出路径如:C:phpStudyWWW	p_test\public/uploads20180727eb7fa19f0035bf2bdd5e6a3690091d93.jpg
                }else{
                    // 上传失败获取错误信息
                    echo $file->getError();
                }
            }
            //接下来进行入库操作


        } else {
            $view = new View();
            return $view->fetch();
        }
    }
}

原文转载:https://mp.weixin.qq.com/s/wloVsvw4-Aqy2kqwbZgSCQ

免责声明:文章转载自《ThinkPHP5与JQuery实现图片上传和预览效果》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇js 过滤数组里对象的某个属性API常用后台解析XML,JOSN数据的两种方式(XML)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

log4j2

转载自 Blog of 天外的星星: http://www.cnblogs.com/leo-lsw/p/log4j2tutorial.html Log4j 2的好处就不和大家说了,如果你搜了2,说明你对他已经有一定的了解,并且想用它,所以这里直接就上手了。   1. 去官方下载log4j 2,导入jar包,基本上你只需要导入下面两个jar包就可以了(xx是...

el-upload配合vue-cropper实现上传图片前裁剪

需求背景 上传一个封面图,在上传之前需要对图片进行裁剪,上传裁剪之后的图片,类似微信的上传头像。 技术方案 上传肯定是用element的 el-upload 组件实现上传,非常方便,各种钩子函数。 裁剪一开始找的 cropper 看着功能到是非常齐全,api也比较丰富,基本是符合预期的需求的。但是此库是基于jq 的,在vue项目中有点难用。于是就找到了 v...

Java 9 揭秘(19. 平台和JVM日志)

Tips做一个终身学习的人。 在这章中,主要介绍以下内容: 新的平台日志(logging)API JVM日志的命令行选项 JDK 9已经对平台类(JDK类)和JVM组件的日志系统进行了大整。 有一个新的API可以指定所选择的日志框架作为从平台类记录消息的日志后端。 还有一个新的命令行选项,可以从所有JVM组件访问消息。 在本章中,详细介绍两个记录工具...

Jquery-获取勾选的checkbox的同级节点数量

// 获取勾选的标签值得上一个兄弟节点 var groups = []; $('input[name="group_name"]:checked').siblings(".lable").each(function(){ groups.push($(this).co...

微信jssdk上传图片,一张一张的上传 和 一次性传好几张

//html模板 <div class="zhaopin_3_2"> <div id="bbb"></div> <img src="/Public/Home/images/jia.png" class="avatar-round1"> <...

自定义样式滚动条

自定义IE浏览器滚动条样式 追溯浏览器对滚动条的自定义,恐怕最早的就是IE浏览器了(好像最开始支持的版本是IE5.5)。下面列出了多个版本的支持性况: 滚动条样式 支持情况 支持浏览器版本 可否继承 描述 scrollbar-3dlight-color IE特有属性 IE5.5+ y 设置滚动框的和滚动条箭头左上边缘的颜色 scrollbar-...