
要使用多图片上传,首先要在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