Я создаю сайт на своей локальной машине с Windows 8 dev (используя wamp). У меня есть PHP-скрипт, который предположительно принимает файлы изображений из каталога на моем сервере и загружает их в WordPress Когда у меня есть один файл в каталоге, все работает нормально. Когда я изменяю код для загрузки нескольких файлов из каталога, загружается только одно изображение, и я получаю сообщение об ошибке: file_get_content(/path/to/directory/): failed ot open stream. Permission denied in /path/to/script/
Вот изображение ошибки, которую я получаю http://i.imgur.com/rRvxKa0.jpgPHP-скрипт возвращает «file_get_contents
Вот код, который работает с одним файлом в каталоге:
global $post;
$rpcurl = get_bloginfo('url') . "/xmlrpc.php";
$username = 'admin';
$password = 'admin';
$blogid = $post->ID; //Post ID
$post_idn = get_post_meta($post->ID, 'VIN', true);
$post_dir = dirname(get_template_directory()) . "/" . $post_idn;
$file = file_get_contents($post_dir . "/file.jpg");
$filetype = "image/jpeg";
$filename = "remote_filename.jpg";
xmlrpc_set_type($file,'base64'); // <-- required!
$params = array($blogid,$username,$password,
array('name'=>$filename,'type'=>$filetype,'bits'=>$file,'overwrite'=>false));
$request = xmlrpc_encode_request('wp.uploadFile',$params);
function go($request,$rpcurl){
$ch = curl_init();
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_URL,$rpcurl);
curl_setopt($ch,CURLOPT_POSTFIELDS,$request);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$result = curl_exec($ch);
}
$result = go($request,$rpcurl);
print_r($result);
Вот код, который должен загружать несколько изображений.
$rpcurl = get_bloginfo('url') . "/xmlrpc.php";
echo $rpcurl;
$username = 'admin';
$password = 'admin';
$blogid = $post->ID; //Post ID
echo $blogid;
$post_idn = get_post_meta($post->ID, 'VIN', true);
echo "<h1>" . $post_idn ."</h1>";
$post_dir = dirname(get_template_directory()) . "/" . $post_idn;
$fileslist = scandir($post_dir);
foreach ($fileslist as $file) {
$file = file_get_contents($post_dir . "/" . $file);
$filetype = "image/jpeg";
$filename = "remote_filename.jpg";
xmlrpc_set_type($file,'base64'); // <-- required!
$params = array($blogid,$username,$password,
array('name'=>$filename,'type'=>$filetype,'bits'=>$file,'overwrite'=>false));
$request = xmlrpc_encode_request('wp.uploadFile',$params);
}
function go($request,$rpcurl){
$ch = curl_init();
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_URL,$rpcurl);
curl_setopt($ch,CURLOPT_POSTFIELDS,$request);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$result = curl_exec($ch);
}
$result = go($request,$rpcurl);
print_r($result);
Вы проверили все права доступа к файлам в каталоге? –
Разрешения для файлов в порядке, потому что он будет загружать файл с именем file.jpg, но не любой из других. – user715564