请选择 进入手机版 | 继续访问电脑版

数字之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: 活动 交友 discuz
查看: 500|回复: 0

thinkphp5.0 实现单文件上传功能

[复制链接]
  • TA的每日心情
    开心
    2019-5-30 08:42
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    493

    主题

    498

    帖子

    2293

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    2293
    admin实名认证 发表于 2019-3-6 15:10:27 | 显示全部楼层 |阅读模式
    思路是:在app/ceshi/fire下面有一个index操作方法来渲染显示前端文件,然后前端文件跳转到upload操作方法进行处理,成功显示"文件上传成功",失败显示错误。
    首先是后台 app/ceshi/fire:
    1. <?php
    2. namespace app\ceshi\controller;
    3. use think\Controller;
    4. use think\Request;

    5. class Fire extends Controller{

    6.     // 文件上传表单
    7.     public function index(){
    8.     return $this->fetch();
    9. }

    10.     // 文件上传提交
    11.     public function upload(){
    12.         // 获取表单上传文件
    13.         $file = request()->file('files');

    14.         if (empty($file)) {
    15.             $this->error('请选择上传文件');
    16.         }
    17.         // 移动到框架应用根目录/public/uploads/ 目录下
    18.         $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
    19.         if ($info) {
    20.             $this->success('文件上传成功');
    21.             echo $info->getFilename();
    22.         } else {
    23.             // 上传失败获取错误信息
    24.             $this->error($file->getError());
    25.         }

    26.     }

    27. }
    复制代码
    现在是前端文件:fire/index.html
    1. <!doctype html>
    2. <html>
    3. <head>
    4.     <meta charset="UTF-8">
    5.     <title>文件上传示例</title>
    6.     <style>
    7.     body {
    8.     font-family:"Microsoft Yahei","Helvetica Neue",Helvetica,Arial,sans-serif;
    9.     font-size:16px;
    10.     padding:5px;
    11. }.form{
    12.      padding: 15px;
    13.      font-size: 16px;
    14. }.form .text {
    15.       padding: 3px;
    16.       margin:2px 10px;
    17.       width: 240px;
    18.       height: 24px;
    19.       line-height: 28px;
    20.       border: 1px solid #D4D4D4;
    21.   }.form .btn{
    22.        margin:6px;
    23.        padding: 6px;
    24.        width: 120px;

    25.        font-size: 16px;
    26.        border: 1px solid #D4D4D4;
    27.        cursor: pointer;
    28.        background:#eee;
    29.    }.form .file{
    30.         margin:6px;
    31.         padding: 6px;
    32.         width: 220px;

    33.         font-size: 16px;
    34.         border: 1px solid #D4D4D4;
    35.         cursor: pointer;
    36.         background:#eee;
    37.     }a{
    38.          color: #868686;
    39.          cursor: pointer;
    40.      }a:hover{
    41.           text-decoration: underline;
    42.       }
    43. h2{
    44.     color: #4288ce;
    45.     font-weight: 400;
    46.     padding: 6px 0;
    47.     margin: 6px 0 0;
    48.     font-size: 28px;
    49.     border-bottom: 1px solid #eee;
    50. }div{
    51.      margin:8px;
    52. }.info{
    53.       padding: 12px 0;
    54.       border-bottom: 1px solid #eee;
    55.   }.copyright{
    56.        margin-top: 24px;
    57.        padding: 12px 0;
    58.        border-top: 1px solid #eee;
    59.    }</style>
    60. </head>
    61. <body>
    62. <h2>文件上传示例</h2>
    63. <FORM method="post" enctype="multipart/form-data" class="form" action="{:url('upload')}">选择文件:
    64.     <INPUT type="file" class="files" name="files"><br/>
    65.     <INPUT type="submit" class="btn" value=" 提交 ">
    66. </FORM>
    67. </body>
    68. </html>
    复制代码
    显示效果:
    1071080-20170629091626914-1139095336.png
    文件上传成功:
    1071080-20170629091702571-1953939813.png

    maomivip@mail.com
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|赢创志诚服务网 ( 鲁ICP备19000917号 )

    GMT+8, 2019-8-20 13:58 , Processed in 0.064791 second(s), 24 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表