<h2 id="前端代码">前端代码
<pre class="html"><!DOCTYPE html>
<form id="ajax-upload-demo" enctype="multipart/form-data">
<script src="https://cdn.bootcss.com/jquery/2.2.4/jquery.min.js">
效果图:
PHP
代码">PHP代码PHP">use think\Controller;
class Index extends Controller
{
// 上传表单页面
public function index()
{
return $this->fetch();
}
// <a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a><a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>接口
public function uploadApi(){
// <a href="https://www.jb51.cc/tag/huoqu/" target="_blank" class="keywords">获取</a><a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>
$file = request()->file('image');
if($file){
// 校验数组
$validateArr = [ 'ext' => 'jpg,jpeg,gif,png,bmp' ];
// <a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的本地存储路径
$path = ROOT_PATH . 'public' . DS . 'upload';
// 校验并移动
$info = $file->validate($validateArr)->move($path);
// 检查移动结果
if($info){
// <a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>成功
// <a href="https://www.jb51.cc/tag/shuchu/" target="_blank" class="keywords">输出</a> jpg
#echo $info->getExtension();
// <a href="https://www.jb51.cc/tag/shuchu/" target="_blank" class="keywords">输出</a> 20160820/42a79759f284b767dfcb2a0197904287.jpg
#echo $info->getSaveName();
// <a href="https://www.jb51.cc/tag/shuchu/" target="_blank" class="keywords">输出</a> 42a79759f284b767dfcb2a0197904287.jpg
#echo $info->getFilename();
// <a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的原<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>名
$sourceInfo = $info->getInfo();
$sourceName = $sourceInfo['name'];
// 拼装url
$url = '/upload/'.$info->getSaveName();
$url = str_replace('\\','/',$url); // Windows下替换路径分隔符
// other some operations ...
// 返回json,告知客户端<a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>结果
$json = json_encode([
'errcode' => '10000','errmsg' => 'Upload success','data' => [ 'url' => $url ]
]);
}else{
// <a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>失败,返回json,告知客户端
$json = json_encode([
'errcode' => '20002','errmsg' => 'Upload <a href="https://www.jb51.cc/tag/Failed/" target="_blank" class="keywords">Failed</a>',]);
}
}else{
// 未<a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a><a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>
$json = json_encode([
'errcode' => '20001','errmsg' => 'File not uploaded',]);
}
return $json;
}
}
<h2 id="上传测试">上传测试
<h4 id="上传一张图片">1. 上传一张图片
上传成功">2. 上传成功
图片">4. 查看图片
上传目录">5. 查看上传目录
错误">可能出现的错误
PHP的上传限制">1. PHP的上传限制
原因
-
max_execution_time
指的是一次请求最长的执行秒数。如果上传文件过大,则可能服务端还没有接收完文件就结束程序了; -
post_max_size
指的是POST数据所允许的最大大小; -
upload_max_filesize
指的是上传文件的最大大小。
本文链接:PHP-ajax-upload.html" class="uri">https://www.cnblogs.com/connect/p/thinkPHP-ajax-upload.html
原文链接:https://www.f2er.com/thinkphp/69347.html