如何解决WordPress文件上传问题
系统环境:windows 2003;Apache 2.2.19;php 5.2.17;WordPress 3.1.4。
①文件类型限制的解决办法:
修改wp-config.php文件,增加一句:
define('ALLOW_UNFILTERED_UPLOADS',true);
②文件大小限制的解决办法:
涉及到php和wordpress两者的参数调整,
修改php.ini
post_max_size = 20M
上述值至少要大于希望上传的最大文件大小。
查看修改memory_limit的值,保证要大于希望上传的最大文件大小。一般默认是128M,应该无需修改。
修改upload_max_filesize = 20M
默认为2M,这个值修改后,在wordpress中显示的文件大小限制达到20M。
修改wp-config.php文件,增加一句:
define('WP_MEMORY_LIMIT','64M');
③汉字文件名问题解决办法:
修改wordpress,wp-admin/includes/file.php文件,找到函数wp_handle_upload()。
修改两句,把
$new_file = $uploads['path'] . "/$filename";改为:$new_file = $uploads['path'] . "/" . iconv("UTF-8","GB2312",$filename);把return apply_filters('wp_handle_upload',array('file'=>$new_file,'url' => $url, 'type' => $type ), 'upload');改为return apply_filters('wp_handle_upload',array('file'=>$uploads['path'] . "/$filename",'url' => $url, 'type' => $type ), 'upload');
④支持rar文件上载问题解决办法
修改wp-includes/functions.php文件
找到函数function get_allowed_mime_types()在行'zip' => 'application/zip',
文件类型限制的解决办法:
修改/wp-config.php文件,增加一句:define('ALLOW_UNFILTERED_UPLOADS', true);
文件大小限制的解决办法:
涉及到php和wordpress两者的参数调整,修改/php/php.ini。
735行 post_max_size = 20M
460行 memory_limit = 128M
886行 upload_max_filesize = 128M
post_max_size值至少要大于希望上传的最大文件大小。
memory_limit值保证要大于希望上传的最大文件大小,一般默认是128M,无需修改。
修改/wp-config.php文件,增加一句:define('WP_MEMORY_LIMIT','64M');
汉字文件名问题解决办法:
修改wordpress,/wp-admin/includes/file.php文件,找到函数wp_handle_upload()
修改两句:
347行 $new_file = $uploads['path'] . "/$filename";改为: $new_file =$uploads['path'] . "/" . iconv("UTF-8","GB2312",$filename);
把362行 return apply_filters('wp_handle_upload',array('file'=>$new_file,'url' => $url, 'type' => $type ), 'upload');改为: returnapply_filters('wp_handle_upload',array('file'=>$uploads['path']."/$filename",'url' => $url, 'type' => $type ), 'upload');