Drupal China
原文地址:
http://www.5iphp.com/zh-hans/heart/180.html
drupal6的upload模块只能上传英文名字的文件,我经过一段时间的测试,完美解决了drupal下中文文档上传的问题。
其实文档上传,无非涉及到两个方面。
第一:文档存到数据库中的名字。
第二:文档上传后存到服务器的文件夹里的名字。
这两个名字如果都是中文的名字,问题就解决了。
根据以上的设想,我开始修改file.inc文件。
为什么要修改这个文件呢?
因为文件的上传是用到upload.module的upload_node_form_submit(&$form, &$form_state)这个函数是管上传的。
但是这个函数上传主要用到了函数里面的这句代码
if (($user->uid != 1 || user_access('upload files')) && ($file = file_save_upload('upload', $validators, file_directory_path())))
也就是 file_save_upload函数才是最终的上传函数。而file_save_upload函数就是在file.inc这个文件里。
所以我们其实就是修改file.inc这个文件里的file_save_upload函数。
修改两个地方就可以
第一个地方,管数据库文件名字的
语句是: $file->filename = file_munge_filename(trim(basename($_FILES['files']['name'][$source]), '.'), $extensions);
修改后:$file->filename = file_munge_filename(trim($_FILES['files']['name'][$source], '.'), $extensions);
第二个地方,管上传到服务器的文件夹里的文件名字的。
原句是:if (!move_uploaded_file($_FILES['files']['tmp_name'][$source], $file->filepath))
修改后:if (!move_uploaded_file($_FILES['files']['tmp_name'][$source],iconv("UTF-8","gb2312",$file->filepath)))
我试了下。。。可以
我试了下。。。可以上传中文附件呀???只是上传了后系统会帮你改掉文件名。。
http://www.leike2.com/
δδδδ技术活做累了,点上面的网址轻松娱乐一下!δδδδ
哦,我的是drupal6.4下的upload模块
哦,我的是drupal6.4下的upload模块,上传附件不能用中文,用中文就是乱码,不清楚你的那个模块是什么?
能否告之?
==============a scratch of pen of jason==================
www.5iphp.com 关于drupal学习、drupal经验、drupal教程的网站
www.5iphp.com 关于drupal学习、drupal经验、drupal教程的网站
转gb2312? UTF-8比较好吧
转gb2312? UTF-8比较好吧
怎么样转,看你自己的方便吧
我只是说明一下原理呵呵
==============a scratch of pen of jason==================
www.5iphp.com 关于drupal学习、drupal经验、drupal教程的网站
www.5iphp.com 关于drupal学习、drupal经验、drupal教程的网站
为什么要上传中文的
为什么要上传中文的附件啊,安装个transliteration 模块,直接把中文的附件名字转成拼音之类的也满好的。
########## AD ################
http://www.petkk.com
最近新开的drupal6.x的子站,主要以学习为主,欢迎大家来交流
http://code.petkk.com
########## AD ################
主要以学习为主,欢迎大家来交流
http://playts.com
推 transliteration
是的, 用 transliteration 就好了, 上傳檔名不只 gb2312編碼會有問題, big5 也會有問題
transliteration 可以適用任何語系上
transliteration 模块
transliteration 模块 对fckeditor中直接上传中文名图片或中文名文件不起作用,还是乱码,需要外挂imce,可是觉得imce的操作显得很繁琐,LZ提供的方法要去试一下,如果可以就可以简化客户端操作了,可以把imce拿掉了。
-----拓展生活,共享闲适与激越!-----
-------------You8.cn-------------
-----拓展生活,共享闲适与激越!-----
-------------You8.cn-------------
这个模块没用过,呵呵
回头装上用用!
==============a scratch of pen of jason==================
www.5iphp.com 关于drupal学习、drupal经验、drupal教程的网站
www.5iphp.com 关于drupal学习、drupal经验、drupal教程的网站
我用了一个另类的方
我用了一个另类的方法。在图片上传模块里用urlencode编了下码,上传后发现保存到数据库的文件名很正常,没有乱码。不过这个法子还没有广泛测试。
<?php$title = current(explode('.',urlencode($_FILES['files']['name']['images'])));//中文drupal社区.jpg
$file->title = urldecode($title);//中文drupal社区
?>
------
博客 | 图片上传
------
Blog
我觉得这个方法也应该可以
我觉得这个方法也应该可以
==============a scratch of pen of jason==================
www.5iphp.com 关于drupal学习、drupal经验、drupal教程的网站
www.5iphp.com 关于drupal学习、drupal经验、drupal教程的网站