本文展示了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. [SD心灵鸡汤]002.每月一则 - 2015.06

    1.用最多的梦面对未来 2.自己要先看得起自己,别人才会看得起你 3.一个今天胜过两个明天 4.要铭记在心:每天都是一年中最美好的日子 5.乐观者在灾祸中看到机会:悲观者在机会中看到灾祸 6.有勇气并 ...

  2. 插入与读取Blob类型数据

    BlobTest package com.aff.PreparedStatement; import java.io.File; import java.io.FileInputStream; imp ...

  3. Activity组件暴露导致本地拒绝服务

    这几天团队打算一起学习Android App漏洞挖掘方面的知识,于是乎拿了一个app当测试例子,争取在上面找到漏洞.在学习过程中发现Android四大组件的安全性还是占有较大的比重,另外比较关心的是数 ...

  4. STM32串口DMA接收数据错位——暴力解决方法

    背景:两片STM32通过串口通信,为了减小CPU负担,采用DMA进行通信,发送端为STM32F103C8T6,接收端为STM32F407VET6.在调试的过程中发现,一直出现数据错位的问题,接收端尝试 ...

  5. 对象调用 push 方法

    /* Array.prototype.push = function A(val) { this[this.length] = val; // =>this.length 在原来的基础上加1 r ...

  6. Java实现 LeetCode 744 寻找比目标字母大的最小字母(二分法)

    744. 寻找比目标字母大的最小字母 给定一个只包含小写字母的有序数组letters 和一个目标字母 target,寻找有序数组里面比目标字母大的最小字母. 在比较时,数组里字母的是循环有序的.举个例 ...

  7. /etc/alternatives

    如何安装一个可执行程序 一般来说我们一个可执行程序,可能在多个路径下,比如在opt路径下,或者在自己的home下. 当要达到在系统的任意路径下敲击该命令,都可执行的话,一般要将该可执行命令的路径加入到 ...

  8. Python学习之计算机基础

    计算机基础: (1)计算机俗称电脑,是现代用于高速计算的电子计算器,可以进行数值计算也可以进行逻辑计算,还有存储记忆功能.是能够按照程序运行,自动,高速处理海量数据的现代化智能 电子设备. (2)物理 ...

  9. java类的加载顺序和实例化顺序(Demo程序)

    一.main函数中实例化对象 父类 package com.learn; public class Father { //静态变量 public static int num_1 = 1; //静态代 ...

  10. Azure AD(四)知识补充-服务主体

    一,引言 又到了新的一周了,也到了我新的分享的时间了,还记得上一周立得Flag,其中 “保证每周输出一篇文章” ,让我特别“在意”(这里用词不太恰当).主要是我的一个大学舍友,他突然问了我一个关于写博 ...