dongwen7813 2014-08-05 11:30
浏览 35
已采纳

Wordpress文件上传编程错误

I create a static page in Wordpress. And want upload and attach image in post(id 159),. But following code is not working. I found this code in here.

My code:

if(isset($_POST['submitbutton'])) 
{
$file = $_FILES["attachment"]["name"];
$parent_post_id = 159;
$filename = basename($file);
$upload_file = wp_upload_bits($filename, null, file_get_contents($file));
if (!$upload_file['error']) {
$wp_filetype = wp_check_filetype($filename, null );
$attachment = array(
    'post_mime_type' => $wp_filetype['type'],
    'post_parent' => $parent_post_id,
    'post_title' => preg_replace('/\.[^.]+$/', '', $filename),
    'post_content' => '',
    'post_status' => 'inherit'
);
$attachment_id = wp_insert_attachment( $attachment, $upload_file['file'], $parent_post_id );
if (!is_wp_error($attachment_id)) {
    require_once(ABSPATH . "wp-admin" . '/includes/image.php');
    $attachment_data = wp_generate_attachment_metadata( $attachment_id, $upload_file['file'] );
    wp_update_attachment_metadata( $attachment_id,  $attachment_data );
    }
  }
}

HTML Code:

<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="attachment"/>
    <input type="submit" name="submitbutton" value="Vorschau">
</form> 

Error:

Warning: file_get_contents(Desert.jpg): failed to open stream: No such file or directory in D:\wamp\www\hossinger\wp-content\themes\hossinger\template-reports.php on line 81

  • 写回答

2条回答 默认 最新

  • dongyong2906 2014-08-05 11:34
    关注

    What kind of error do you get? Add error_reporting(E_ALL); to the top of the page to view all warnings and errors generated by the script.

    Most of the times with a script like this the problem is the read/write rights of the folder you are trying to move the uploaded file to.

    Edit: Ah i see; i think the problem is that you are trying to upload the $_FILES 'name' instead of 'tmp_name'.

    change:

    $upload_file = wp_upload_bits($filename, null, file_get_contents($file));
    

    to:

    $upload_file = wp_upload_bits($filename, null, file_get_contents($_FILES["attachment"]["tmp_name"]));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计