>  기사  >  백엔드 개발  >  laravel과 ajax가 파일 업로드 기능을 구현하는 방법에 대한 자세한 설명

laravel과 ajax가 파일 업로드 기능을 구현하는 방법에 대한 자세한 설명

黄舟
黄舟원래의
2017-08-14 09:10:371967검색

제가 현재 진행하고 있는 프로젝트는 Laravel 개발을 기반으로 하고 있으며 Ajax 업로드가 필요한 부분이 있어서 몇 가지 정보를 확인하고 직접 사용할 수 있는 방법을 정리했습니다. 다음 글에서는 laravel+ajax를 이용한 파일 업로드 기능 구현 관련 내용을 주로 소개하고 있으니, 필요한 분들은 참고하시면 좋을 것 같습니다.

Foreword

초기 XMLHttpRequest는 파일 업로드를 지원하지 않는다는 것을 누구나 알고 있습니다. 일반적으로 타사 js 플러그인이나 플래시를 사용하여 XMLHttpRequest 레벨 2의 바이너리 파일을 얻을 수 있습니다. 최근 직장에서 이런 일이 발생했습니다. 이것은 요구 사항이므로 더 이상 고민하지 않고 자세한 소개를 살펴보겠습니다.

샘플 코드


@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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.