php – 通过wp_handle_upload删除未放在uploads文件夹中的图像

前端之家收集整理的这篇文章主要介绍了php – 通过wp_handle_upload删除未放在uploads文件夹中的图像前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我将图像保存到uploads文件夹,但是我使用 file_put_contents而不是 wp_handle_upload – 因为我在base64中获取图像,而不是$_FILES中的文件.

图像和某些帖子数据将被保存/更新,因为它们应该使用此功能

> wp_insert_attachment
> wp_update_attachment_Metadata

问题是当我想要删除一个旧的图像(当保存一个新的图像时).

wp_delete_attachment不会删除图像(它似乎删除db中的东西..).我在想,问题在于不使用wp_handle_upload. (当我通过上传btn上传图像,并使用$_FILES接收图像,然后使用wp_handle_upload上传它 – 删除工作)

有没有人想到在我的情况下删除图像的正确方法是什么?
也许我可以使用wp_handle_upload正确地保存它,即使我在base64中有一个图像?

感谢任何信息.

编辑:我也尝试保存图像与wp_upload_bits和wp_delete_attachment仍然没有工作.

另一件事我检查:the code的wp_handle_upload函数位于wp-admin/includes/file.php:我没有看到一个简单的方法修改或复制现有的函数,并添加一个自定义的,将接受base64映像而不是像$_FILES中的文件.有人有“base64 to $_FILES”的解决方法吗?

正如@KamilP所说,WP在wp_posts和wp_postMeta表中插入记录.

所以首先你必须将base64图像保存在临时目录中,然后通过使用相对路径和其他数据,您可以使用wp_insert_attachment数据库中插入记录,链接包含适当的例子.
功能添加图像到媒体库.

生成更多缩略图,您可以使用wp_generate_attachment_metadata功能.此功能将更新wp_postMeta表,还具有图像和缩略图的所有细节.

之后,您可以使用wp_delete_attachment功能从目录和数据库删除图像.

另一个解决方

>使用this link功能从base64字符串生成图像.
>然后得到MIME类型,图像的大小和路径
>创建一个类似于$_FILES的数组.
然后把它传给wp_handle_upload

更新:

$_FILES数组的结构是这样的

array(5) {
    'name'     => string(8) "file name.extension" // file name with extension
    'type'     => string(0) "" // mime type of file,i.e. image/png
    'tmp_name' => string(0) "" // absolute path of file on disk.
    'error'    => int(2) // 0 for no error
    'size'     => int(0) // size in bytes
  }

您可以像上面那样创建所有细节的数组,使用各种文件处理PHP函数获取大小和MIME类型.名称是你想要放置的,而tmp_name是存在文件的服务器上文件的路径,在您的文件夹位置,从base64字符串保存文件.

请参阅上面的更新链接功能,将从base64字符串给出图像.

原文链接:https://www.f2er.com/php/132695.html

猜你在找的PHP相关文章