codeigniter 是否允许上传原始图像?

Does codeigniter allow raw images upload?

Codeigniter 不允许上传具有以下配置的原始图像文件(CR2、NEF、DNG 等)。

我正在使用 dropzone.js 上传 image/video 文件。将文件拖到 dropzone window 后,文件会上传到临时文件夹并提交,它们会移动到所需的存储位置。

我可以使用 mime_types image/jpeg|image/png|image/gif|video/* 上传文件。但是,未上传扩展名为 .CR2!.DNG 等的原始图像文件。它总是抛出错误You did not select a file to upload

在分析时,我发现默认的 'upload' 库只允许 jpeg|png|gif 和其他 jpeg 支持的图像格式。

 $config['upload_path'] = './upload_files/temp/';
 $config['allowed_types'] = 'jpeg|png|jpg|cr2|dng|srf|mp4|mov|mpg|mpeg|wmv|mkv';
 $config['encrypt_name'] = TRUE;
 $this->load->library('upload'); 
 $this->upload->initialize($config);

 if (!$this->upload->do_upload('file')) {
  $msg = $this->upload->display_errors('', '');
  header("HTTP/1.1 404 Not Found");
  return $msg;
 } else {
      ....
 }

正在更新 上传 库以允许 选项所需的文件类型,或者是否存在其他选项?

其次,如果要将文件上传到不同的存储服务器,即 AWS S3 或其他服务器,上传到本地临时文件夹然后将其推送到远程服务器是否总是明智的?

TIA

查看您的 mime 类型配置文件@config/mimes.php 并添加

'dng'   =>  array('image/x-adobe-dng'),
'cr2'   =>  array('image/x-dcraw', 'image/x-canon-cr2'),

您找到原始图像的 MIME 类型列表

更新恢复评论:

RAW 文件是相当大的文件,因此请确保您的 php.ini 设置中的图像大小符合要求:相应地更改 post_max_size

适用于 php 7.2.20