Saeed Pirdost
Saeed Pirdost

Reputation: 167

How to save files to wordpress

I am running my wordpress on localhost, My code retrieves photos from urls and using file_put_contents add them to the current directory, but I need it to add them to /wordpress/wp-content/uploads where wordpress save the manually uploaded files.

$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']; 

Upvotes: 0

Views: 7946

Answers (2)

drzaus
drzaus

Reputation: 25024

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'];

Upvotes: 2

Felipe Alameda A
Felipe Alameda A

Reputation: 11809

I think I understand the problem.

This or any equivalent statement should be at the top of the file to load WP:

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

The path/to/ is relative and depends on the position of your file. If, for example, your file is located in a folder at wordpress/here, the path should be something like "../wp-load.php", but that's something you have to figure out.

Try displaying errors so you know what's going on, with a code like this one:

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

Then, add this code:

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

Remove:

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

if(! function_exists('wp_upload_dir')) {

down to the last line.

Insert echo statements in the appropriate places to see the results.

Upvotes: 1

Related Questions