laravel+ajax完成檔案上傳功能

來源:互聯網
上載者:User
最近在做的項目基於Laravel開發,需要用到Ajax上傳,查了些資料,自己整理了下可用的方法。下面這篇文章主要給大家介紹了關於利用laravel+ajax實現檔案上傳功能的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。

前言

大家都知道,早期的XMLHttpRequest不支援檔案上傳,一般用第三方js外掛程式或者flash,現在可以藉助XMLHttpRequest Level 2 的FormData對象實現二進位檔案上傳,正好最近工作中遇到了這個需求,所以本文就來給大家總結下實現的方法,話不多說了,來一起看看詳細的介紹吧。

範例程式碼


@extends('layouts.art')@section('content')<form class="form-horizontal" id="avatar">    {{ csrf_field() }} <p class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">名字</label> <p class="col-sm-8">  <input type="title" class="form-control" id="title" name="title"> </p> </p> <p class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">頭像</label> <p class="col-sm-8">  <input type="file" class="form-control" id="title" name="photo"> </p> </p> <p class="form-group"> <p class="col-sm-offset-2 col-sm-10">  <a class="btn btn-default" onclick="uploadInfo()">上傳</a> </p> </p></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));  }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.