Php 我试图上传一个文件到wordpress,但我有不同的问题
我正在尝试从Web服务接收文件并将其保存到wordpress,但我有以下问题Php 我试图上传一个文件到wordpress,但我有不同的问题,php,wordpress,image-uploading,Php,Wordpress,Image Uploading,我正在尝试从Web服务接收文件并将其保存到wordpress,但我有以下问题 一些文件将被上传,但它们已损坏,我无法打开它们,尽管它们的Web服务地址是正确的 它显示了以下错误(虽然它显示了这些错误,但还是上传了文件,这很好:D,但我想知道为什么我会收到它们) 注意:第22行的/Applications/MAMP/htdocs/wordpress/wp-load.php中已经定义了常量ABSPATH 致命错误:在第95行的/Applications/MAMP/htdocs/wordpress/w
ini_set( 'display_errors', TRUE );
error_reporting( E_ALL );
require("/Applications/MAMP/htdocs/wordpress/wp-load.php");
$pos = strrpos($Address, "&f=");
$loc = substr($Address, $pos + 3);
$Address = "http://dev.piction.com/v60/" . $Address;
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_URL, $Address);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
$upload_dir = wp_upload_dir();
$location= $upload_dir['basedir']. "/" . $loc;
try{
$location= $upload_dir['path']. "/" . $loc;
$wp_filetype = wp_check_filetype($loc, null );
$fullpathfilename = $upload_dir['path'] . "/" . $loc;
$fileSaved = file_put_contents($location, $output);
if ( !$fileSaved ) {
throw new Exception("The file cannot be saved.");
}
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_title' => preg_replace('/\.[^.]+$/', '', $loc),
'post_content' => '',
'post_status' => 'inherit',
'guid' => $upload_dir['url'] . "/" . $loc
);
$attach_id = wp_insert_attachment( $attachment, $fullpathfilename, 0 );
if ( !$attach_id ) {
throw new Exception("Failed to save record into database.");
}
//require_once(ABSPATH . "wp-admin" . '/includes/image.php');
$attach_data = wp_generate_attachment_metadata( $attach_id, $fullpathfilename );
wp_update_attachment_metadata( $attach_id, $attach_data );
} catch (Exception $e) {
$error = '<div id="message" class="error"><p>' . $e->getMessage() . '</p></div>';
}
echo 'Photo is uploaded';
ini\u集('display\u errors',TRUE);
错误报告(E_全部);
要求(“/Applications/MAMP/htdocs/wordpress/wp load.php”);
$pos=strrpos($Address,&f=“);
$loc=substr($Address,$pos+3);
$Address=”http://dev.piction.com/v60/" . $地址;
$ch=curl_init();
curl_setopt($ch,CURLOPT_POST,0);
curl_setopt($ch,CURLOPT_URL,$Address);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$output=curl\u exec($ch);
卷曲关闭($ch);
$upload_dir=wp_upload_dir();
$location=$upload_dir['basedir']。"/" . $loc;
试一试{
$location=$upload_dir['path']。“/”$loc;
$wp\u filetype=wp\u check\u filetype($loc,null);
$fullpathfilename=$upload_dir['path'].“/”$loc;
$fileSaved=文件内容($location,$output);
如果(!$fileSaved){
抛出新异常(“无法保存文件”);
}
$attachment=array(
'post_mime_type'=>$wp_filetype['type'],
“post\u title”=>preg\u replace('/\...[^.]+$/','.$loc),
'发布内容'=>'',
“post_status”=>“inherit”,
'guid'=>$upload_dir['url']。“/”$loc
);
$attach\u id=wp\u insert\u attachment($attachment,$fullpathfilename,0);
如果(!$attach\u id){
抛出新异常(“未能将记录保存到数据库。”);
}
//require_once(ABSPATH.wp admin.'/includes/image.php');
$attach\u data=wp\u生成\u附件\u元数据($attach\u id,$fullpathfilename);
wp_更新_附件_元数据($attach_id,$attach_data);
}捕获(例外$e){
$error='。$e->getMessage()。';
}
echo“上传照片”;
看起来确实包含了两次文件,这可以解释为什么会出现“已定义”错误
尝试删除代码第三行中的
require()
语句,看看它是否有效,因为该文件似乎已经包含在脚本的其他地方。尝试更改为require_一次(“/Applications/MAMP/htdocs/wordpress/wp load.php”)代码>当您得到已经定义的通知时,它可能表示您已经包含了wp-load.php
您还需要取消注释行//require(ABSPATH.'wp admin/includes/image.php')
要能够使用wp\u生成附件\u元数据()
尝试更改为require\u一次(“/Applications/MAMP/htdocs/wordpress/wp load.php”)代码>当您得到已经定义的通知时,它可能表示您已经包含了wp-load.php。您还需要取消注释行//require(ABSPATH.'wp admin/includes/image.php')代码>能够使用wp_生成_附件_metadata@kjetilh,currect请在答案中键入