利用laravel+ajax實現(xiàn)文件上傳功能方法示例
前言
大家都知道,早期的XMLHttpRequest不支持文件上傳,一般用第三方j(luò)s插件或者flash,現(xiàn)在可以借助XMLHttpRequest Level 2 的FormData對象實現(xiàn)二進制文件上傳,正好最近工作中遇到了這個需求,所以本文就來給大家總結(jié)下實現(xiàn)的方法,話不多說了,來一起看看詳細的介紹吧。
示例代碼
@extends('layouts.art') @section('content') <form class="form-horizontal" id="avatar"> {{ csrf_field() }} <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">名字</label> <div class="col-sm-8"> <input type="title" class="form-control" id="title" name="title"> </div> </div> <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">頭像</label> <div class="col-sm-8"> <input type="file" class="form-control" id="title" name="photo"> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <a class="btn btn-default" onclick="uploadInfo()">上傳</a> </div> </div> </form> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <script type="text/javascript"> function uploadInfo() { var formData = new FormData($("#avatar")); $.ajax({ url: "{{url('photo')}}", type: 'POST', data: formData, contentType: false, processData: false, success: function (returndata) { console.log(returndata); }, error: function (returndata) { console.log(returndata); } }); } </script> @endsection
//生成路徑,圖片存儲 $ext = $request->photo->getClientOriginalExtension(); $cover_path = "images/album/covers/" . time() . $ext; $name = "photo".time(); $src = "images/album/photos/". $name .".jpg"; Image::make($request->photo)->save(public_path($src));*/ //批量上傳圖片 foreach ($request->photo as $key => $value) { //生成路徑,圖片存儲 $prefix = "photo".mt_rand(1,1000); $Origname = $value->getClientOriginalName(); $name = $prefix.$Origname; $src = "images/album/photos/".$name; $realPath = $value->getRealPath(); Storage::disk('uploads')->put($src,file_get_contents($realPath)); }
更多參考
https://developer.mozilla.org/zh-CN/docs/Web/API/FormData/UsingFormDataObjects
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
從零開始學(xué)YII2框架(六)高級應(yīng)用程序模板
這篇文章主要介紹了YII2框架學(xué)習(xí)筆記之高級應(yīng)用程序模板,深入淺出從安裝,配置到使用方法都做了介紹,希望對大家有所幫助2014-08-08詳細Laravel5.5執(zhí)行表遷移命令出現(xiàn)表為空的解決方案
這篇文章主要介紹了詳細Laravel5.5執(zhí)行表遷移命令出現(xiàn)表為空的解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07基于php(Thinkphp)+jquery 實現(xiàn)ajax多選反選不選刪除數(shù)據(jù)功能
這篇文章主要介紹了基于php(Thinkphp)+jquery 實現(xiàn)ajax多選反選不選刪除數(shù)據(jù)功能的相關(guān)資料,需要的朋友可以參考下2017-02-02關(guān)于ThinkPhp 框架表單驗證及ajax驗證問題
tp數(shù)據(jù)驗證有兩種方式,一種是靜態(tài)方式,一種是動態(tài)方式,下面小編給大家?guī)砹薚hinkPhp 框架表單驗證及ajax驗證問題,感興趣的朋友一起看看吧2017-07-07