Heim  >  Artikel  >  Backend-Entwicklung  >  Laravel + Ajax schließt die Funktion zum Hochladen von Dateien ab

Laravel + Ajax schließt die Funktion zum Hochladen von Dateien ab

巴扎黑
巴扎黑Original
2017-08-15 09:33:481514Durchsuche

Das Projekt, an dem ich gerade arbeite, basiert auf der Laravel-Entwicklung und erfordert den Ajax-Upload. Ich habe einige Informationen überprüft und die verfügbaren Methoden selbst herausgefunden. Der folgende Artikel führt Sie hauptsächlich in die relevanten Informationen zur Verwendung von Laravel + Ajax zur Implementierung der Datei-Upload-Funktion ein. Freunde in Not können darauf zurückgreifen.

Vorwort

Wie wir alle wissen, unterstützte das frühe XMLHttpRequest das Hochladen von Dateien nicht und verwendete im Allgemeinen JS-Plug-Ins von Drittanbietern oder Jetzt können Sie das FormData-Objekt von XMLHttpRequest verwenden, um das Hochladen von Binärdateien zu implementieren. Ich bin kürzlich bei der Arbeit auf diese Anforderung gestoßen, daher wird dieser Artikel ohne weitere Umschweife einen Blick auf die detaillierte Einführung werfen.

Beispielcode


@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(&#39;photo&#39;)}}",
   type: &#39;POST&#39;, 
   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(&#39;uploads&#39;)->put($src,file_get_contents($realPath));
  }

Das obige ist der detaillierte Inhalt vonLaravel + Ajax schließt die Funktion zum Hochladen von Dateien ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn