我刚刚遇到了一个有趣的情况。
我有一个网站,我正在开发,我已经定义了具体的图像大小,我想创建一个新的图像时,上传。目前,我定义了一个75x75的特定缩略图大小和一个150x150像素的中等大小的图像。
假设我们继续使用内置媒体上传器上传新图像,我们预计Wordpress将自动上传并存储原始图像以及我在功能中指定的任何其他图像大小。php文件(在本例中为75x75和150x150像素图像)。
首先,上述示例确实工作得很好,我对结果非常满意。
但我注意到的是when you pick a bmp file 上载时不会自动调整大小。
我的目标是找出其他人在试图找到解决此问题的方法时可能注意到此问题。我需要确保即使上载了大型bmp文件,代码
the_post_thumbnail( array(50,50), \'class=alignleft\' );
将显示50x50像素的图像。
如果有人感兴趣,我已经确认这个问题与bmp图像有关,方法是将原始bmp图像通过photoshop保存为jpg和png文件,然后使用wordpress媒体管理器上载photoshop转换的相同文件。。。在这两种情况下,我都注意到在上传每个转换的文件后,完全相同的图像被正确地调整了大小。
我还应该指出,当上载bmp文件图像时,该文件的实际上载确实发生了,但在media manager中,只有原始(全尺寸)图像可插入帖子,并且检查media upload文件夹时,也只显示了一个图像。
非常感谢您的任何指导、帮助或诊断!
SO网友:Lars Koudal
这是来自another thread, 使用允许限制允许的文件类型的代码。
add_filter(\'wp_handle_upload_prefilter\', \'yoursite_wp_handle_upload_prefilter\');
function yoursite_wp_handle_upload_prefilter($file) {
// This bit is for the flash uploader
if ($file[\'type\']==\'application/octet-stream\' && isset($file[\'tmp_name\'])) {
$file_size = getimagesize($file[\'tmp_name\']);
if (isset($file_size[\'error\']) && $file_size[\'error\']!=0) {
$file[\'error\'] = "Unexpected Error: {$file_size[\'error\']}";
return $file;
} else {
$file[\'type\'] = $file_size[\'mime\'];
}
}
list($category,$type) = explode(\'/\',$file[\'type\']);
if (\'image\'!=$category || !in_array($type,array(\'jpg\',\'jpeg\',\'gif\',\'png\'))) {
$file[\'error\'] = "Sorry, you can only upload a .GIF, a .JPG, or a .PNG image file.";
} else if ($post_id = (isset($_REQUEST[\'post_id\']) ? $_REQUEST[\'post_id\'] : false)) {
if (count(get_posts("post_type=attachment&post_parent={$post_id}"))>0)
$file[\'error\'] = "Sorry, you cannot upload more than one (1) image.";
}
return $file;
}
代码由
MikeSchinkel