wp_insert_attachment不上载图像到媒体库或上传文件夹
问题描述:
我试图在我的WordPress网站的前端创建自己的自定义图像/文件上传。当我上传文件时,它会到达我的数据库,但是在媒体库中,文件没有完全上传,当我检查我的wp-content/uploads文件夹时,没有任何内容可以解决这个问题。wp_insert_attachment不上载图像到媒体库或上传文件夹
在媒体库文件的图像 unfinished upload file in Media Library
<form method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="img-upload" id="img-upload" />
<input type="submit" value="Upload Image" name="submit">
</form>
require_once(ABSPATH . "wp-admin" . '/includes/image.php');
require_once(ABSPATH . "wp-admin" . '/includes/file.php');
require_once(ABSPATH . "wp-admin" . '/includes/media.php');
$image = $_POST['img-upload'];
$upload_dir = wp_upload_dir();
$file_name = basename($image);
//$file_data = file_get_contents($file);
$file_dir = $upload_dir['basedir'] . "/" . basename($image);
$file_type = wp_check_filetype($image,null);
$attachment = array(
'guid' => $file_dir,
'post_mime_type' => $file_type['type'],
'post_title' => preg_replace('/\\.[^.\\s]{3,4}$/', '', $image),
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment($attachment, $image,0);
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attach_data = wp_generate_attachment_metadata($attach_id, $file_dir);
wp_update_attachment_metadata($attach_id, $attach_data);
答
你可以试试这个代码。它将工作
<?php
if(isset($_POST['submit'])){
require_once(ABSPATH . 'wp-admin/includes/image.php');
require_once(ABSPATH . 'wp-admin/includes/file.php');
require_once(ABSPATH . 'wp-admin/includes/media.php');
$attachment_id = media_handle_upload('img-upload', '');
if (is_wp_error($attachment_id)) {
$attachment_url="";
}
else {
$attachment_url=wp_get_attachment_url($attachment_id);;
}
if(!empty($attachment_url)){
//do the stuff you want to
}
}
?>
可以提供'的print_r($ _ FILES)的内容;'? – user2914191
当我使用var_dump或print_r作为$ _FILES @ user2914191时,没有打印出来 –
找出你为什么没有在'$ _FILES'中获取任何东西。 https://*.com/questions/3586919/why-would-files-be-empty-when-uploading-files-to-php只是让你知道,当你提交表单时,'$ _FILES'应该只包含数据并上传一个文件。 – user2914191