larave异步多图片上传的实现和注意事项及$file的对象函数

时间:2023-03-09 02:31:23
larave异步多图片上传的实现和注意事项及$file的对象函数

要使用多图片上传,首先要在input添加multipart,同时注意name的参数要加[],不然,不算是数组。具体如下,注意绿色地方。如果是单张图片,把[]去掉,不要multiple;

<input type="file" name="up_photos[]" class="form-control-file" v-model="up_photos" multiple>

jquery异步上传

$.ajax({
url: "/base/test",
type: 'POST',
data: formData,
contentType: false,
processData: false,
success: function (returndata) {
console.log(returndata);
},
error: function (returndata) {
console.log(returndata);
} });

控制器里的设置

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Storage;

class BaseController extends Controller
{
public function test(Request $r)
{
$pathname = "/public/images/".date('Y/m/d'); $photo_paths=[];
if(isset($r->up_photos)){
foreach ($r->up_photos as $key => $photo) {
$photo_paths[]=$photo->store($pathname);
}
}
return $photo_paths;
} }

其中返回的是图片链接,也可以直接保存到数据库。

有时我们要判断文件类型,下面举例

$file->getClientOriginalName()   这个是取文件名;

$file->getMimeType()   这个是取文件类型 如 image/jpeg