1. 程式人生 > >Laravel使用自帶的檔案系統實現檔案上傳

Laravel使用自帶的檔案系統實現檔案上傳

這算是觀看慕課網是的視訊然後寫的一篇筆記

介紹:Laravel自己的檔案系統

Laravel的檔案系統是基於Frank de Jonge的Flysystem擴充套件包

提供了簡單的介面,可以操作本地端空間,Amazon S3 、Rackspace Cloud Storage

可以非常簡單的切換不同的儲存方式,但仍使用相同的API操作

實際操作步驟如下:

1、首先在config下找到filesystems.php檔案上傳的配置檔案

新建一個專門儲存上傳檔案的磁碟

在disks下,增加一個本地的uploads磁碟

'uploads' => [
    'driver' => 'local',
    'root' => storage_path('app/uploads'),
    'url' => env('APP_URL').'/storage',
],

待會兒上傳檔案成功之後,檔案會儲存在storage/app/uploads下面

2、新建一個專門處理檔案的Controller

專案根目錄命令列執行:

php artisan make:controller FileController

在FileController中新建一個upload的方法

在routes/api.php中新增路由資訊

路由前改為any表示可以接受任何型別的請求

Route::any('/biz/file/upload', '[email protected]');

3、在resources/views/下新建檢視file/upload.blade.php

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
            <div class="panel panel-default">
                <div class="panel-heading">檔案上傳</div>
                <div class="panel-body">
                    <form class="form-horizontal" role="form" method="POST" action="" enctype="multipart/form-data">
                        {{ csrf_field() }}

                        <div class="form-group" >
                            <label for="file" 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>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

將login.blade.php的內容複製過來並刪掉不需要的部分,修改文字內容,特別注意修改標黃的內容

4、然後在FileController的upload方法中載入file.upload的檢視

public  function upload(Request $request){

    return view('file.upload');
}

5、然後完善FileController的upload方法

public  function upload(Request $request){

        if($request->isMethod('POST')){
//            var_dump($_FILES);
            $file = $request->file('source');
//            dd($file);
            //檔案是否上傳成功
            if($file->isValid()){
                //獲取原檔名
                $originalName= $file->getClientOriginalName();
                //獲取檔案拓展名
                $ext= $file->getClientOriginalExtension();
                $type= $file->getClientMimeType();
                //獲取檔案臨時絕對路徑
                $realPath = $file->getRealPath();
                //自定義檔案儲存的名稱
                $fileName = date('Y-m-d-H-i-s').'-'.uniqid().'.'.$ext;

               $bool=  \Storage::disk('uploads')->put($fileName,file_get_contents($realPath));

               var_dump($bool);
            }
            exit;
        }
        return view('file.upload');
    }

點選“選擇檔案”按鈕,選擇要上傳的檔案,再點選“確認上傳”按鈕

然後返回boolean true ,表示上傳檔案成功

storage/app/uploads可以看到上傳的檔案。

相關推薦

使用SpringMV的CommonsMultipartFile實現圖片功能

說明 1.前端上傳檔案必須用表單上傳 /** * 上傳圖片 * * @param params * @return */ @RequestMapping(value = "/uploadImage"

Laravel使用檔案系統實現檔案

這算是觀看慕課網是的視訊然後寫的一篇筆記 介紹:Laravel自己的檔案系統 Laravel的檔案系統是基於Frank de Jonge的Flysystem擴充套件包 提供了簡單的介面,可以操作本地端空間,Amazon S3 、Rackspace Cloud S

用微軟的FileUpload控制元件檔案報錯

解決方法:在WebConfig 中 增加<system.web>     <httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="104857" executionTimeout=

Xcodegit將本地專案到GitHub

1.cd到你的專案目錄下 2.git init 3.git add . 4.git commit -m "first commit" 5.git remote add origin https://github.com/icefishlily/audioPlayer_2.git//換成你自己的u

[原始碼和文件分享]程式設計實現根據NTFS檔案系統定位檔案在磁碟的偏移地址

背景 之前在上一篇博文中 “NTFS檔案系統介紹及檔案定位” 介紹過 NTFS 的基礎概念和常用格式介紹,同時還詳細給出了使用 NTFS 定位磁碟檔案的例子。現在,這篇文章講解的就是,程式設計實現 NTFS 檔案定位。也就是把之前手動定位全部改成程式設計實現,輸入一個檔案路徑,就可以得到檔案的大

用socket定義簡單協議實現檔案與接受

一個上傳的資料包,主要包含檔案頭和檔案內容倆部分,主要按下面的格式,傳送: "File-Name:xxxxxx.zip;File-Type:exe;File-Length:1029292\r\n" ------檔案內容--------- 1、服務端的檔案接受服務 MySoc

外掛 ,自己寫js,實現批量檔案及進度顯示

今天接受專案中要完成檔案批量上傳檔案而且還要顯示上傳進度,一開始覺得這個應該不是很麻煩,當我在做的時候遇到了很多問題,很頭疼啊。 不過看了別人寫的程式碼,自己也測試過,發現網上好多都存在一些問題,並不是自己想要的。然後自己查閱各種資料,經過自己總結,最終完成了這個功能。

分散式檔案系統FastDFS簡介、搭建、與SpringBoot整合實現圖片

之前大學時搭建過一個FastDFS的圖片伺服器,當時只是抱著好奇的態度搭著玩一下,當時搭建採用了一臺虛擬機器,tracker和storage服務在一臺機器上放著,最近翻之前的部落格突然想著在兩臺機器上搭建試一下,順便整合了SpringBoot實現了一下圖片的上傳服務。 新的閱讀體驗地址:http://www

.NET快速資訊化系統開發框架 V3.2-&gt;Web版本新增“檔案管理中心”集、下載、檔案共享等一身,非常實用的功能

  檔案中心是3.2版本開始新增的一個非常實用功能,可以歸檔自己平時所需要的檔案,也可以把檔案分享給別人,更像一個知識中心。檔案中心主介面如下圖所示,左側“我的網盤”展示了使用者對檔案的分類,只能自己看到,“公共盤”中的檔案所有使用者都可以看到。選擇一個分類,右側列出了當前分類的所有檔案(第一列

Xcode工具 FileMerge 進行檔案比較、合併

FileMerge 是XCode自帶的一款工具,可進行程式碼比較、合併。 1、在應用程式中找到Xcode右鍵選擇顯示包內容,路徑如下圖,可複製快捷鍵方便使用。 也可以直接開啟Xcode,在Open Developer Tool中開啟,如下圖。 如下圖: 2、開啟FileMerge,如下圖,選擇左右

檔案系統實現

檔案系統實現 檔案系統結構 磁碟提供大量的外部空間來維持檔案系統。磁碟的下述兩個特點,使其成為儲存多個檔案的方便介質: 可以原地重寫,可以從磁碟上讀一塊,修改該快,並將它寫回到原來的位置。 可以直接訪問磁碟上的任意一塊資訊。因此,可以簡單地順序或隨機地

Struts框架下載檔案輔助類,簡單實現Struts圖片以及下載

       首先在看這篇文章的前提下,你得會用Struts框架,有一定的基礎瞭解,說白了瞭解怎麼搭建就行了,然後基本就能順利執行本篇文章的Demo,當然這個類不僅僅侷限於圖片上傳下載的,因為是自己用流寫的方法所以可以支援其他檔案上傳下載。

ajax實現非同步檔案

 html+js程式碼 <form action="" enctype="multipart/form-data" id="upForm"> {{csrf_field()}} <input type="text" name="name" value="

用java實現ftp檔案

實際專案需求:從資料庫查詢資訊,在本地生成檔案,再上傳到ftp 所用Jar包:NetComponents.jar 核心程式碼: import java.io.File; import java.io.FileInputStream; import java.io.IOExcepti

上機考試系統 commons-fileupload 與下載 && 壓縮為 zip 檔案 && 刪除資料夾下所有內容

在 maven 中使用了 commons-fileupload,使用方法: (一)上傳 1-1.前端介面 <form action="" enctype="multipart/form-data" class="modifyall" method="post

java實現FTP(檔案)、下載(檔案、資料夾、資料夾遞迴)、刪除(檔案、資料夾遞迴)

提示:必須先保證有在FTP上上傳、下載、刪除的許可權! 本文結構 ---- 先給出測試樣例(圖片版),再給出工具類程式碼(文字版)! 上傳測試 注意:.uploadFile(String remoteDir, String remoteFileName, F

Java實現FTP檔案到Linux伺服器的那些坑

一、Linux安裝FTP服務         首先Linux伺服器需要安裝FTP服務,步驟如下: 1、執行如下ftp服務安裝命令: yum install vsftpd 可能會出現如下錯誤: "Couldn't open file /m

基於檔案系統實現可追加的資料集市

一 問題背景 絕大多數的應用系統中,一開始資料的儲存和計算基本都是由資料庫來完成的,同時服務於業務交易和報表查詢;不過在經過幾年資訊化建設和資料積累後,常常都會遇到資料庫壓力變大,從而導致效能瓶頸的問題。 究其原因,往往發現針對歷史資料查詢的報表在其中佔了很大比重。進

windows中拖動檔案到瀏覽器,實現自動 -- Java

 //拖動License檔案到瀏覽器中,自動讀取檔案並上傳var dropbox = $("body")[0];dropbox.addEventListener("dragenter", function(e){   e.stopPropagation();   e.preventDefault();},

.NET快速資訊化系統開發框架 V3.2->Web版本新增“檔案管理中心”集、下載、檔案共享等一身,非常實用的功能

  檔案中心是3.2版本開始新增的一個非常實用功能,可以歸檔自己平時所需要的檔案,也可以把檔案分享給別人,更像一個知識中心。檔案中心主介面如下圖所示,左側“我的網盤”展示了使用者對檔案的分類,只能自己看到,“公共盤”中的檔案所有使用者都可以看到。選擇一個分類,右側列出了當前分類的所有檔案(第一列會根據檔案的型