php 将base64编码文件上传到Wordpress

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 将base64编码文件上传到Wordpress相关的知识,希望对你有一定的参考价值。

<?php
function base64_upload($base64, $filename = null) {
  if (!$filename) $filename = md5($base64);
  if (!pathinfo($filename, PATHINFO_EXTENSION)) $filename .= '.jpg';

  $content = base64_decode($base64);
  $upload_dir = wp_upload_dir();
  $file = $upload_dir['path'] . DIRECTORY_SEPARATOR . $filename;

  file_put_contents($file, $content);

  $mime_info = wp_check_filetype_and_ext($file, $filename);

  if ($mime_info['proper_filename']) $filename = $mime_info['proper_filename'];

  $file_info = array(
    'name'      => $filename,
    'type'      => $mime_info['type'],
    'tmp_name'  => $file,
    'error'     => 0,
    'size'      => strlen($content)
  );

  $overrides = array(
    'test_form' => false,
    'test_size' => true
  );

  $result = wp_handle_sideload($file_info, $overrides);

  if (empty($result['error'])) {
    $attachment = array(
      'guid'           => $result['file'],
      'post_mime_type' => $mime_info['type'],
      'post_title'     => $filename,
      'post_content'   => '',
      'post_status'    => 'inherit'
    );

    $result['id'] = wp_insert_attachment($attachment, $result['file']);
    $result['metadata'] = wp_generate_attachment_metadata($result['id'], $result['file']);

    wp_update_attachment_metadata($result['id'], $result['metadata']);
  }

  return $result;
}
?>

以上是关于php 将base64编码文件上传到Wordpress的主要内容,如果未能解决你的问题,请参考以下文章

请不要用php进行base64编码文件上传

PHP base64_decode 产生无效的图像文件

如何使用Jmeter在Web服务中上传和编码(base64)文件

上传图片文件转换成blob

如何仅使用 JavaScript 将 base64 编码的图像数据上传到 S3?

如何将音频文件转为base64 编码