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

 

posted @ 2018-10-24 16:27  火鸟网络  阅读(155)  评论(0编辑  收藏  举报