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