laravel 文件上传
文件上傳
Laravel的文件系統是基于Frankde Jonge的Flysystem擴展包
提供了簡單的接口,可以操作本地端空間,Amazons3,Rackspace Cloud Storage
可以非常簡單的切換不同保存方式,但仍使用相同的API操作
?
配置文件
1.Config/filesystems.php
??? 'disks' => [
??????? 'local' => [
??????????? 'driver' => 'local',
??????????? 'root' => storage_path('app'),
??????? ],
??????? 'public' => [
??????????? 'driver' => 'local',
??????????? 'root' =>storage_path('app/public'),
??????????? 'visibility' => 'public',
??????? ],
???????????????????? //新建立一個uploads
??????? 'uploads' =>[
??????????? 'driver' => 'local',
??????????? //storage_path對應的是目錄下storage
??????????? 'root' =>storage_path('app/uploads'),
???????? ???'visibility' => 'public',
??????? ],
??????? 's3' => [
??????????? 'driver' => 's3',
??????????? 'key' => 'your-key',
??????????? 'secret' => 'your-secret',
??????????? 'region' => 'your-region',
??????????? 'bucket' => 'your-bucket',
??????? ],
],
2.view
<form class="form-horizontal" method="POST" action="" enctype="multipart/form-data">
??? {{csrf_field() }}
??? <div class="form-group{{$errors->has('password') ? ' has-error' : '' }}">
??????? <label for="password" class="col-md-4 control-label">請選擇文件</label>
??????? <div class="col-md-6">
??????????? <input id="file" type="file" class="form-control" name="source" required>
??????? </div>
??? </div>
??? <div class="form-group">
??????? <div class="col-md-8 col-md-offset-4">
??????????? <button type="submit" class="btn btn-primary">
??????????????? 確認上傳
??????????? </button>
??????? </div>
??? </div>
</form>
?
3.controllers
public function upload(Request $request) {if($request->isMethod('POST')) {//print_r($_FILES);//source表單名$file = $request->file('source');//文件是否上傳成功if($file->isValid()) {//取原文件名$originalName = $file->getClientOriginalName();//取擴展名$ext = $file->getClientOriginalExtension();//取文件類型$type = $file->getClientMimeType();//臨時文件的絕對路徑$realPath = $file->getRealPath();//定義文件名$fileName = date("YmdHis"). '-' . uniqid(). '.' . $ext;//uploads為config/filesystems里自定義$bool = Storage::disk('uploads')->put($fileName, file_get_contents($realPath));print_r($bool);exit;}}return view('student.upload'); }總結
以上是生活随笔為你收集整理的laravel 文件上传的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: laraver 用户认证auth、数据迁
- 下一篇: laravel 邮件SwiftMaile