-1

我在 localhost 上运行我的 wordpress,我的代码从 url 检索照片并使用 file_put_contents 将它们添加到当前目录,但我需要将它们添加到 /wordpress/wp-content/uploads 中,wordpress 保存手动上传的文件。

$Address = "www.xxx.com/" . $file;
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_URL, $file);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$url = curl_exec($ch);
curl_close($ch);
$location = "/wordpress/wp-content/uploads/2013/a.jpg"; 
file_put_contents($location, file_get_contents($url));
if(! function_exists('wp_upload_dir'))
                {
                    define('WP_USE_THEMES',false);
                    require 'wordpress/wp-load.php';
                }
    $upload_dir = wp_upload_dir(); 
    echo $upload_dir['path'];
    echo $upload_dir['url'];
    echo $upload_dir['subdir']; 
4

2 回答 2

2

http://codex.wordpress.org/Function_Reference/wp_upload_bits

// the curl thing from question...results in `$url`
$upload = wp_upload_bits('a.jpg', null, file_get_contents($url));
echo $upload['file'], $upload['url'], $upload['error'];
于 2014-09-10T09:52:24.187 回答
1

我想我理解这个问题。

此或任何等效语句应位于文件顶部以加载 WP:

require_once("path/to/wp-load.php");

path/to/是相对的,取决于文件的位置。例如,如果您的文件位于 的文件夹中wordpress/here,则路径应该类似于"../wp-load.php",但这是您必须弄清楚的。

尝试显示错误,以便您知道发生了什么,使用如下代码:

ini_set( 'display_errors', TRUE );
error_reporting( E_ALL );

然后,添加以下代码:

$UploadDir = wp_upload_dir();
$UploadURL = $UploadDir['baseurl'];
$location  = $UploadURL . "/2013/a.jpg";

消除:

$location = "/wordpress/wp-content/uploads/2013/a.jpg"; and all code from:

if(! function_exists('wp_upload_dir')) {

一直到最后一行。

在适当的位置插入echo语句以查看结果。

于 2013-01-19T06:45:59.480 回答