跳转到主要内容
marixh 提交于 14 November 2013

Drupal 7上传图片或者文件,如果文件名包含汉字,会出现上传后乱码,无法显示等问题,我们可以通过上传后重命名来解决这个问题。

打开\includes\file.inc 文件,找到1474行:

 

$file->filename = file_munge_filename($file->filename, $extensions);

将其注释掉。在其后添加如下两行:

$the_extension = pathinfo($_FILES['files']['name'][$source],PATHINFO_EXTENSION);
$file->filename = date("Ymd") . '_' . date("His") . '_' . rand(100,999) . '.' . $the_extension;

改过之后,我们上传"汉字.jpg"图片,将会以 "20131114_105605_128.jpg"的形式保存在服务器。

-----------------------------------

后记:如果你觉得直接改动drupal核心代码不妥,可以试试 http://drupal.org/project/transliteration 这个模块 ,安装好后,上传文件时汉字文件名会自动转换为拼音。无毒无害。

articles
tags

您好,请教下如何更改图片上传的路径哦,原先的那个路径太长了,我想把上传的图片统一存到/images里面,就是在根目录下新建一个/images的目录,但是出现了这样的警告:

Warning:mkdir()[fuction.mkdir]:permission denied 在 drupal_mkdir()

目录/images不存在因为未能创建

您好,请教下如何更改图片上传的路径哦,原先的那个路径太长了,我想把上传的图片统一存到/images里面,就是在根目录下新建一个/images的目录,但是出现了这样的警告: 目录/images不存在因为未能创建

不知有人按照上面的修改成功解决了问题没有,我的实际是要这样修改才解决问题。 将以下语句:

$file->filename = file_munge_filename($file->filename, $extensions) 

修改为:

$the_extension = pathinfo($file->filename,PATHINFO_EXTENSION);
$file->filename = date("Ymd") . '_' . date("His") . '_' . rand(100,999) . '.' . $the_extension;