【发布时间】:2015-03-07 12:21:16
【问题描述】:
我做了一个功能,允许用户将图像上传到我的 wordpress 网站。上传工作正常,但是当我用这个上传的图片打开帖子时,图片没有显示出来。当我在 Firebug 中打开它时,我注意到图像的宽度和高度为 0。
如何上传图片,使其显示为像我使用媒体库表单上传的一样。 这是我的代码:
if(isset($_FILES["image"])) {
if (!function_exists('wp_handle_upload')) require_once(ABSPATH . 'wp-admin/includes/file.php');
$uploadedfile = $_FILES['image'];
$upload_overrides = array('test_form' => false);
$movefile = wp_handle_upload($uploadedfile, $upload_overrides);
if ($movefile) {
$wp_filetype = $movefile['type'];
$filename = $movefile['file'];
$wp_upload_dir = wp_upload_dir();
$attachment = array(
'guid' => $wp_upload_dir['url'] . '/' . basename($filename),
'post_mime_type' => $wp_filetype,
'post_title' => preg_replace('/\.[^.]+$/', '', basename($filename)),
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment($attachment, $filename);
set_post_thumbnail($pageid, $attach_id);
}
}
编辑:
当我在 Firebug 中手动添加 width: 100% 时,图像会显示出来
【问题讨论】:
-
那么你的日志文件是怎么说的?会很有趣,因为这就是问题所在。
-
@arkascha 我在哪里可以找到日志。这是我第一次制作 wp 插件。
-
啊,好的。我提到了您的 http 服务器写入的日志文件。这是在您的 http 服务器配置中配置的。通常类似于 /var/log/apache2/.... if 您正在使用 apache http 服务器。显然,其他服务器略有不同。所以:1. 你使用哪个 http 服务器 2. 日志文件在哪里配置?
-
@arkascha 我找到了错误日志,但今天没有任何内容,所以我假设此函数没有记录任何错误。
-
好的。那么接下来:上传的文件在文件系统内部是什么样子的?那么:网络对图像的请求会产生什么结果?您也可以在浏览器的开发控制台中看到。