lumen 上传文件

https://lumen.laravel.com/docs/5.6/requests

Retrieving Uploaded Files

* routes

.\routes\web.php

$router->post('user/upload', 'UserController@upload');

* Controller

.\app\Http\Controllers\UserController.php

    public function upload(Request $request) {
        if (!$request->hasFile('photo')) {
            return [
                'code' => 2,
                'data' => null,
                'msg' => 'no photos'
            ];
        }
        $file = $request->file('photo');

        $res = ['code' => 1, 'data'=>null, 'msg' => 'invalid file'];
        if ($file->isValid()) {
            $dir = env("UPLOAD_DIR");
            $filename = date('YmdHis').rand(0, 1000).'.'.$file->guessExtension();
            $file->move( $dir, $filename);

            $res['code'] = 0;
            $res['data'] = env("UPLOAD_URL").$filename;
            $res['msg'] = 'success';
        }
        return $res;
    }

* .env

 + 2行

UPLOAD_DIR=E:/upload/
UPLOAD_URL=http://www.mediamix.cn:8089/

* html

        <div class="layui-main container">
            <form class="layui-form" action="" name="upload">
                <div class="layui-form-item">
                    <label class="layui-form-label" for="input_photo">upload photo</label>
                    <div class="layui-input-block">
                        <input type="file" name="photo" id="input_photo" required lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-input-block">
                        <button id="J_upload" type="button" class="layui-btn" lay-submit lay-filter="login">上传</button>
                    </div>
                </div>
            </form>
        </div>

* js

扫描二维码关注公众号,回复: 3012338 查看本文章
  var uploadForm = document.forms.upload;

  $("#J_upload").on("click", function () {
    $.ajax({
      url: window.CONTEXT_PATH + "/user/upload",
      type: 'POST',
      data: new FormData(uploadForm),
      dataType: 'json',
      cache: false,
      processData: false,
      contentType: false,
    }).done(function (data) {
        if (0===data.code) {
          window.open(data.data);
        } else {
          var p = document.createElement("<p>");
          p.innerHTML = data.msg;
          document.body.appendChild(p);
        }
    }).fail(function (jqXHR, textStatus, errorThrown) {});
  });

猜你喜欢

转载自blog.csdn.net/fareast_mzh/article/details/82181334