php获取图片后后缀名,formData上传图片,php获取不到图片扩展名

前端用javascript剪裁完一张图片后,把图片放到formData对象中ajax上传到后台(Laravel),header内容是这样:

bVE97w?w=685&h=162

后台dd一下接收到的图片:

public function changeAvatar(Request $request)

{

$file = $request->file('croppedImage');

dd($file);

}

返回的结果是这样:

bVE97y?w=747&h=578

可是,获取不到图片的扩展名,下面这样dd()扩展名得到的是一个空字符串

''

public function changeAvatar(Request $request)

{

$file = $request->file('croppedImage');

$extension = $file->getClientOriginalExtension();

dd($extension);

}

不知哪里有问题,麻烦解答一下。

下面是js代码,用到了

cropper

这个js剪裁工具 https://github.com/fengyuanch…

$('#uploadAvatar').on('click', function (e) {

$("#image").cropper('getCroppedCanvas').toBlob(function (blob) {

var formData = new FormData();

formData.append('croppedImage', blob);

$.ajaxSetup({

headers: {

'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')

}

});

$.ajax({

type: "POST",

url: "{{ url('/avatar') }}",

processData: false,

contentType: false,

cache: false,

data: formData

}).done(function (response) {

//...

}).fail(function (data) {

//...

});

});

});

不知道题主js怎么是写的,下面是我的Demo

javascript

var token = $("#token").attr('content');

var info = new FormData(document.getElementById('test'));

info.append('_token', token);

$.ajax({

url: "/test",

type: "POST",

data: info,

processData: false,

contentType: false

}).done(function () {

//......

}).fail(function () {

//......

});

php

public function file (Request $request)

{

$file = $request->file('image');

$file->getMimeType();                   //文件类型

$file->getClientOriginalExtension();    //文件后缀

}

结果

bVFak4?w=302&h=124

扩展名一般是从filename中取的,而你的filename是blob没有包含扩展名,js提交可能有问题。

未贴出js部分代码无法确认怎么修改

在你php部分$file输出可以看到有个–mimeType,你可以先判断前面部分是否为image/,如果不是就提示上传文件必须为图片格式。然后直接用str_replace替换掉image/剩下的就是扩展名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值