在Summernote中复制粘贴屏幕截图,并将其上传为文件



我正在使用php的summernote文本编辑器,我可以拖放图像文件.png,.jpeg,并且能够上传映像并获得返回的图像路径并显示图像。

i确实使用Codeigniter,以下用于验证图像,

$config['upload_path']   = './uploads/parts/';
$config['allowed_types'] = 'gif|jpg|png|jpeg';
$config['max_size']      = '2000';
$config['encrypt_name']  = TRUE;
$config['remove_spaces'] = TRUE;

当我拖放drop png扩展文件时,它可以完美工作,而下面是请求Paylod,预计将运行,因为文件已经具有PNG的扩展。

------WebKitFormBoundaryZoezKRGNH5LYW3oL
Content-Disposition: form-data; name="userfile"; filename="2016-06-17_12-53-01.png"
Content-Type: image/png

------WebKitFormBoundaryZoezKRGNH5LYW3oL--

但是,当我拍摄屏幕截图并简单地复制它,然后将其粘贴到编辑器中,它作为blob和我的验证投掷错误,

------WebKitFormBoundaryagedeUpo2DrEPCbg
Content-Disposition: form-data; name="userfile"; filename="blob"
Content-Type: image/png

------WebKitFormBoundaryagedeUpo2DrEPCbg--

由于没有延长文件,因此会丢弃错误 The filetype you are attempting to upload is not allowed.

我们如何将复制粘贴映像作为.png发送或我应该允许哪个扩展名?

谢谢,

转到application/config/mimes.php

'gif'   =>  'image/gif',
'jpeg'  =>  array('image/jpeg', 'image/pjpeg'),
'jpg'   =>  array('image/jpeg', 'image/pjpeg'),
'jpe'   =>  array('image/jpeg', 'image/pjpeg'),
'png'   =>  array('image/png',  'image/x-png'),

如果失败仍在echo pathinfo($fileName, PATHINFO_EXTENSION);并检查扩展名,并向Mimes

检查

读取codeigniter映像和formget.com中的文件上传

我确实修改了上传JS,

较早的一个就像下面,

data = new FormData();
data.append("userfile", files[0])

因此,它将按照附件的文件名称示例myfilename.png,

使用文件名。

现在要删除文件名的依赖性,我将代码更改为

data = new FormData();
data.append("userfile", files[0], upload.png)

因此,现在所有复制粘贴图像和拖放图像文件都将始终以upload.png为单位。甚至BLOB都将被称为上传。

参考 - https://developer.mozilla.org/en-us/docs/web/api/formdata/append