ホームページ  >  記事  >  バックエンド開発  >  laravel+ajaxでファイルアップロード機能が完成

laravel+ajaxでファイルアップロード機能が完成

巴扎黑
巴扎黑オリジナル
2017-08-15 09:33:481515ブラウズ

現在取り組んでいるプロジェクトはLaravel開発に基づいており、Ajaxアップロードが必要です。いくつかの情報を確認し、利用可能なメソッドを自分で整理しました。以下の記事では、laravel+ajaxを使ったファイルアップロード機能の実装に関する情報を中心に紹介していますので、困っている方は参考にしてみてください。

はじめに

初期の XMLHttpRequest がファイルのアップロードをサポートしていないことは誰もが知っていますが、現在は、XMLHttpRequest レベル 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(&#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));
  }

以上がlaravel+ajaxでファイルアップロード機能が完成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。