加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

ThinkPHP+JQuery实现文件的异步上传

发布时间:2020-12-14 13:56:35 所属栏目:大数据 来源:网络整理
导读:h2 id="前端代码"前端代码 pre class="html" !DOCTYPE html ThinkPHP+JQuery实现文件的异步上传 form id="ajax-upload-demo" enctype="multipart/form-data" 选择文件: script src="https://cdn.bootcss.com/jquery/2.2.4/jquery.min.js"gt; 效果图: use t

<h2 id="前端代码">前端代码
<pre class="html"><!DOCTYPE html>

ThinkPHP+JQuery实现文件的异步上传

<form id="ajax-upload-demo" enctype="multipart/form-data">



<script src="https://cdn.bootcss.com/jquery/2.2.4/jquery.min.js"&gt;

效果图:

use thinkController;

class Index extends Controller
{
// 上传表单页面
public function index()
{
return $this->fetch();
}

// 上传文件接口
public function uploadApi(){
    // 获取文件
    $file = request()->file('image');
    if($file){
        // 校验数组
        $validateArr = [ 'ext' => 'jpg,jpeg,gif,png,bmp' ];
        // 文件的本地存储路径
        $path = ROOT_PATH . 'public' . DS . 'upload';
        // 校验并移动
        $info = $file->validate($validateArr)->move($path);
        // 检查移动结果
        if($info){
            // 上传成功

            // 输出 jpg
            #echo $info->getExtension();

            // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
            #echo $info->getSaveName();

            // 输出 42a79759f284b767dfcb2a0197904287.jpg
            #echo $info->getFilename();

            // 文件的原文件名
            $sourceInfo = $info->getInfo();
            $sourceName = $sourceInfo['name'];

            // 拼装url
            $url = '/upload/'.$info->getSaveName();
            $url = str_replace('','/',$url); // Windows下替换路径分隔符

            // other some operations ...

            // 返回json,告知客户端上传结果
            $json = json_encode([
                'errcode'   => '10000','errmsg'    => 'Upload success','data'      => [ 'url' => $url ]
            ]);
        }else{
            // 上传失败,返回json,告知客户端
            $json = json_encode([
                'errcode'   => '20002','errmsg'    => 'Upload failed',]);
        }
    }else{
        // 未上传文件
        $json = json_encode([
            'errcode'   => '20001','errmsg'    => 'File not uploaded',]);
    }
    return $json;
}

}


<h2 id="上传测试">上传测试


<h4 id="上传一张图片">1. 上传一张图片

解决方法 打开PHP的配置文件php.ini

  1. 查找max_execution_time,修改其值为60或更大
  2. 查找post_max_zise,修改其值为128M或更大
  3. 查找upload_max_filesize,修改其值为128M或更大

原因

  1. max_execution_time指的是一次请求最长的执行秒数。如果上传文件过大,则可能服务端还没有接收完文件就结束程序了;
  2. post_max_size指的是POST数据所允许的最大大小;
  3. upload_max_filesize指的是上传文件的最大大小。

本文链接:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读