우리 모두 알고 있듯이 초기 XMLHttpRequest는 파일 업로드를 지원하지 않았으며 타사 js 플러그인 또는 플래시가 일반적으로 사용되었습니다. 이제 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('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)); }
관련 권장 사항:
PHP 웹 페이지에서 일반적인 파일 업로드 기능을 구현하는 방법,
JQuery를 사용하여 비동기 제출 및 파일 업로드 기능 구현 형태
위 내용은 laravel 및 ajax는 파일 업로드 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!