在Code Igniter中上传带有空格的文件名的图像问题

时间:2016-05-30 03:46:04

标签: php angularjs codeigniter file-upload

我正在使用Angular JS + Codeigniter开发一个网站。

问题在于图片上传。不会上传带空格的文件名(例如:“first image.jpg”)。

如果我们删除该空格,则会上传(例如:“firstimage.jpg”)。这是我的配置。

$config = array(
  'allowed_types'     => 'jpg|jpeg|gif|png', 
  'max_size'          => 2048, //2MB max
  'upload_path'       => $this->original_path,
  'remove_spaces'     => true
);

$this->load->library('upload', $config);

3 个答案:

答案 0 :(得分:0)

首先,我要问一下,以你的方式剥离空间有什么问题?"你真的想保留带有空格的上传文件吗?

执行此操作的干净方法是将您已找到的内容正式化并将逻辑合并到某个现有(控制器?)类的新类或方法中:

  • 确定应用/网站中用户上传的文件名的所有可接受字符的范围。
  • 创建一个正则表达式,根据您的要求将各种输入字符串(例如带有空格,制表符和任何其他不需要的东西的文件名)转换为可用的文件名
  • 相应地调用该函数/ class :: function

答案 1 :(得分:0)

使用。

从文件名中删除不必要的空格和符号
$file_name = $_FILES["userfiles"]['name'];
$newfile_name= preg_replace('/[^A-Za-z0-9]/', "", $file_name);

$config = array('allowed_types'     => 'jpg|jpeg|gif|png', 
'upload_path'       => $this->original_path,
'file_name'=>$newfile_name);

答案 2 :(得分:0)

如果您的文件名中只有空格问题,请尝试此功能:

当你将数据输入到该函数的控制器中时,你必须在传递给模型之前使用trim,如下所示:

$ file_name = trim($ _ FILES [“userfiles”] ['name']);这样您就可以轻松地从文件名中删除空格。