本文展示了ThinkPHP6 上传图片代码demo, 代码亲测可用.

HTML部分代码

 <tr>
<th class="font-size-sm" style="width:15%;height:100px;">商品图片</th>
<td>
<div class="custom-file">
<div id="uploadImage" style="width:100px;height:100px;display: inline;"></div>
<button id="uploadBtn" class="btn btn-outline-info font-size-sm">选择图片</button>
<input type="file" name="imgFile" id="imgFile" style="display: none;">
</div>
</td>
</tr>

JS部分代码

 $(document).ready(function(){
    var input = $("#imgFile");
    // 将上传按钮绑定到input['file']上
    $("#uploadBtn").click(function(){
        input.trigger("click");
    });
    input.change(function () {
        // 如果value不为空,调用文件加载方法
        if ($(this).val() !== "") {
            doUpload(this);
        }
    });
}); // 上传图片
var SCOPE = {
    'uploadUrl': '{:url("' + urlPath +'/upload")}',
};
function doUpload() {
    var formData = new FormData($( "#myform" )[0]),
        appendDiv = $("#uploadImage"),
        imageUrl = '',
        imageDiv = '';
    $.ajax({
        url: SCOPE.uploadUrl ,
        type: 'POST',
        data: formData,
        async: false,
        cache: false,
        contentType: false,
        processData: false,
        success: function (result) {
            if(result.status === 1){
                appendDiv.empty();
                imageUrl = '/storage/' + result.data;
                imageDiv = '';
                appendDiv.append(imageDiv);
            }
        },
    });
}

ThinkPHP中的上传方法

 /**
 * 图片上传(ajax)
 * @return \think\Response|void
 * @throws \Exception
 */
public function upload()
{
    // 获取表单上传文件 例如上传了001.jpg
    $file = request()->file('imgFile');
    try{
        // 验证
        validate(['imgFile'=>[
            'fileSize' => 410241024,
            'fileExt' => 'jpg,jpeg,png,bmp,gif',
            'fileMime' => 'image/jpeg,image/png,image/gif', //这个一定要加上,很重要我认为!
        ]])->check(['imgFile' => $file]);         // 上传图片到本地服务器
        $saveName = \think\facade\Filesystem::disk('public')->putFile( 'merchant', $file, 'data');
        $this->result(1, '图片上传成功!', $saveName, 'json');
    } catch (\Exception $e) {
        // 验证失败 输出错误信息
        return $this->exceptionHandle($e,
            '图片上传失败!' . $e->getMessage(),
            'json',
            '');
    }
}

本文转载自老刘博客, 转载请注明出处,谢谢!

http://laoliu.pro/php/15.html
————————————————
版权声明:本文为CSDN博主「老刘pro」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a33130317/article/details/106933622

ThinkPHP6 上传图片代码demo的更多相关文章

  1. 嵌入式 hi3518x平台h264+g711a封装mp4代码demo

    先看代码吧,有代码有真相,具体代码的demo(下载demo的朋友请勿在网上上传我的demo,谢谢)下载连接为: http://download.csdn.net/detail/skdkjxy/8071 ...

  2. 用Portable.BouncyCastle来进行加解密的代码demo

    前言 这里对之前对接的公司中的代码demo做一个总结,原本为清一色的java,哈哈.这里都转成C#.用到的库是Portable.BouncyCastle.官网.之前也是准备用.net core 内置的 ...

  3. python 网络通讯 服务器端代码demo,能够同时处理多个客户端的连接请求

    这是一个python网络通讯服务器端的代码demo,能够同时处理多个客户端的连接请求. from socket import * import threading from datetime impo ...

  4. Javascript类继承-机制-代码Demo【原创】

    最近看到<Javascript设计模式>,对js模拟的”继承方式“有了更深一步的了解,虽然之前也总是用到prototype.new ,但只是知其然不知所以然,现在将类继承的方法整理如下,暂 ...

  5. jdk8十大特性并代码demo(转)

    一.十大特性 1.Lambda表达式 2.Stream函数式操作流元素集合 3.接口新增:默认方法与静态方法 4.方法引用,与Lambda表达式联合使用 5.引入重复注解 6.类型注解 7.最新的Da ...

  6. 机器学习:eclipse中调用weka的Classifier分类器代码Demo

    weka中实现了很多机器学习算法,不管实验室研究或者公司研发,都会或多或少的要使用weka,我的理解是weka是在本地的SparkML,SparkML是分布式的大数据处理机器学习算法,数据量不是很大的 ...

  7. 微信支付接口--超详细带注释代码--Demo

    如果本文对你有用,请爱心点个赞,提高排名,帮助更多的人.谢谢大家!❤ 如果解决不了,可以在文末进群交流. 如果对你有帮助的话麻烦点个[推荐]~最好还可以follow一下我的GitHub~感谢观看! 微 ...

  8. 线性回归和梯度下降代码demo

    程序所用文件:https://files.cnblogs.com/files/henuliulei/%E5%9B%9E%E5%BD%92%E5%88%86%E7%B1%BB%E6%95%B0%E6%8 ...

  9. vc++ 调用winapi调节屏幕亮度(增加win7代码demo)

    1.关于 代码是通过测试的,测试环境: win7 + MFC 为什么要发在这里? 区别于上一篇随笔. MD排版更顺眼 demo 会放到 这里 更正了上一篇随笔中的代码错误 2.头文件 #include ...

随机推荐

  1. Linux 任务后台运行软件【即:终端复用器】之---screen

    会话: 命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令. 用户与计算机的这种临时的交互,称为一次"会话&qu ...

  2. python 03—字符串分割

    字符串分割 例:sentenc = "I am an Englist sentenc" sentence.split() split()把字符串按照空格进行分割,所以得到的结果是 ...

  3. RabbitMQ安装(centos7)

    本文是作者原创,版权归作者所有.若要转载,请注明出处. 本文RabbitMQ版本为rabbitmq-server-3.7.17,erlang为erlang-22.0.7.请各位去官网查看版本匹配和下载 ...

  4. Java 第十一届 蓝桥杯 省模拟赛 19000互质的个数

    问题描述 不超过19000的正整数中,与19000互质的数的个数是多少? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将 ...

  5. Java实现 LeetCode 278 第一个错误的版本

    278. 第一个错误的版本 你是产品经理,目前正在带领一个团队开发新的产品.不幸的是,你的产品的最新版本没有通过质量检测.由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的. ...

  6. Java实现 蓝桥杯VIP 算法提高 3-2求存款

    算法提高 3-2求存款 时间限制:1.0s 内存限制:256.0MB 问题描述 见计算机程序设计基础(乔林)P50第5题. 接受两个数,一个是用户一年期定期存款金额,一个是按照百分比格式表示的利率,计 ...

  7. 第六届蓝桥杯JavaC组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.机器人数目 少年宫新近邮购了小机器人配件,共有3类,其中, A类含有:8个轮子,1个传感器 B类含有: 6个轮子,3个传感器 C类含有 ...

  8. java实现第六届蓝桥杯五星填数

    五星填数 如[图1.png]的五星图案节点填上数字:1~12,除去7和11. 要求每条直线上数字和相等. 如图就是恰当的填法. 请你利用计算机搜索所有可能的填法有多少种. 注意:旋转或镜像后相同的算同 ...

  9. 「从零单排canal 01」 canal 10分钟入门(基于1.1.4版本)

    1.简介 canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据 订阅 和 消费.应该是阿里云DTS(Data Transfer Servi ...

  10. 源码分析(5)-ArrayList、Vector和LinkedList(JDK1.8)

    一.概述 1.线程安全:ArrayList和LinkedList非线程安全的.Vector线程安全的. 2.底层数据结构:ArrayList和Vector底层数据结构是数组:LinkedList双向链 ...