博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ThinkPHP+JQuery实现文件的异步上传
阅读量:5223 次
发布时间:2019-06-14

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

前端代码

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

效果图:

1222343-20190126195255701-819141077.png

PHP代码

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; }}

上传测试

1. 上传一张图片

1222343-20190126195304695-420702027.png

2. 上传成功

1222343-20190126195311601-1389840754.png

3. 点击查看

1222343-20190126195326204-1110856173.png

4. 查看图片

1222343-20190126195330934-230428108.png

5. 查看上传目录

1222343-20190126195335723-499207649.png

可能出现的错误

1. PHP的上传限制

解决方法

打开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指的是上传文件的最大大小。

本文链接:

转载于:https://www.cnblogs.com/connect/p/thinkphp-ajax-upload.html

你可能感兴趣的文章
Spring定时器,定时执行(quartz)
查看>>
ASCII码表
查看>>
webstorm使用教程
查看>>
PHP 反射API
查看>>
BZOJ4045 : [Cerc2014] bricks
查看>>
Oracle登陆触发器
查看>>
Git-git提交报错error:RPC failed
查看>>
mysql-mysqlslap执行报错
查看>>
sdn
查看>>
# 2017-2018-1 20155302 课下实践IPC及课上补充
查看>>
java8新特性之Optional类
查看>>
在Qt(C++)中使用QThread实现多线程
查看>>
11-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇(微信配网配置_Airkiss步骤_2)...
查看>>
jquery阅读记录2
查看>>
zabbix电话告警V1
查看>>
eclipse把局部变量提为全局变量的快捷键是什么
查看>>
《研磨设计模式》——可配置的简单工厂
查看>>
为网站添加免费的访问计数统计和加入微博
查看>>
ubuntu root用户 默认密码
查看>>
对百度搜索法的分析评价
查看>>