思路是:在app/ceshi/fire下面有一个index操作方法来渲染显示前端文件,然后前端文件跳转到upload操作方法进行处理,成功显示"文件上传成功",失败显示错误.

首先是后台 app/ceshi/fire

 <?php
namespace app\ceshi\controller;
use think\Controller;
use think\Request; class Fire extends Controller{ // 文件上传表单
public function index(){
return $this->fetch();
} // 文件上传提交
public function upload(){
// 获取表单上传文件
$file = request()->file('files'); if (empty($file)) {
$this->error('请选择上传文件');
}
// 移动到框架应用根目录/public/uploads/ 目录下
$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
if ($info) {
$this->success('文件上传成功');
echo $info->getFilename();
} else {
// 上传失败获取错误信息
$this->error($file->getError());
} } }

现在是前端文件:fire/index.html

 <!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>文件上传示例</title>
<style>
body {
font-family:"Microsoft Yahei","Helvetica Neue",Helvetica,Arial,sans-serif;
font-size:16px;
padding:5px;
}.form{
padding: 15px;
font-size: 16px;
}.form .text {
padding: 3px;
margin:2px 10px;
width: 240px;
height: 24px;
line-height: 28px;
border: 1px solid #D4D4D4;
}.form .btn{
margin:6px;
padding: 6px;
width: 120px; font-size: 16px;
border: 1px solid #D4D4D4;
cursor: pointer;
background:#eee;
}.form .file{
margin:6px;
padding: 6px;
width: 220px; font-size: 16px;
border: 1px solid #D4D4D4;
cursor: pointer;
background:#eee;
}a{
color: #;
cursor: pointer;
}a:hover{
text-decoration: underline;
}
h2{
color: #4288ce;
font-weight: ;
padding: 6px ;
margin: 6px ;
font-size: 28px;
border-bottom: 1px solid #eee;
}div{
margin:8px;
}.info{
padding: 12px ;
border-bottom: 1px solid #eee;
}.copyright{
margin-top: 24px;
padding: 12px ;
border-top: 1px solid #eee;
}</style>
</head>
<body>
<h2>文件上传示例</h2>
<FORM method="post" enctype="multipart/form-data" class="form" action="{:url('upload')}">选择文件:
<INPUT type="file" class="files" name="files"><br/>
<INPUT type="submit" class="btn" value=" 提交 ">
</FORM>
</body>
</html>

显示效果:

文件上传成功:

最新文章

  1. PCB设计中的20H原则
  2. 第三个Sprint冲刺第六天
  3. Java中基本数据类型的存储方式和相关内存的处理方式(java程序员必读经典)
  4. 【Window】Tor(洋葱头路由)+Privoxy 网络实践(附带Java实例代码)
  5. 使用scrapy爬取豆瓣上面《战狼2》影评
  6. js中的Object.defineProperty()和defineProperties()详解
  7. 近视BFC
  8. 检索 COM 类工厂中 CLSID 为 {91493441-5A91-11CF-8700-00AA0060263B} 的组件失败
  9. 【3D动画建模设计工具】Maxon Cinema 4D Studio for Mac 20.0
  10. python3 + flask + sqlalchemy +orm(2):数据库中添加表
  11. POJ 1986 Distance Queries(LCA Tarjan法)
  12. HTML基础教程
  13. 网络编程(2)—UDP
  14. 专访图书作者祁宇:C++11让程序更简洁、更现代、更强大
  15. linux服务器设置只允许密钥登陆
  16. ASP.NET MVC标记最新的发布新闻或文章
  17. 如何使用Android studio打开eclipse项目
  18. 《鸟哥的Linux私房菜》学习笔记0——计算机概论
  19. Opencv-Python:图像尺寸、图像的读取、显示、保存与复制
  20. Redis 5种数据结构及其使用场景举例--STRING

热门文章

  1. 第三百五十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—将bloomfilter(布隆过滤器)集成到scrapy-redis中
  2. 第三百二十四节,web爬虫,scrapy模块介绍与使用
  3. Maven的生命周期是为了对所有的构建过程进行了抽象了,便于统一。
  4. C# 获取web.config配置文件
  5. Java虚拟机性能管理神器 - VisualVM(3) 插件安装与更新路径配置
  6. C# webbrowser判断页面是否加载完毕
  7. List&amp;Map&amp;Set的操作和遍历
  8. linux 系统安装mysql (rpm)
  9. kafka学习之-server.properties详细说明
  10. vs技巧总结