Реклама на сайте Advertise with us

Wordpress xmlrpc upload image

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

Добрых Дел Мастер

С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227

Ссылка на сообщениеДобавлено: 07/06/11 в 16:04       Ответить с цитатойцитата 

смотрим в ман http://codex.wordpress.org/XML-RPC_wp#wp.uploadFile

Цитата:
struct data
string name - 'image.png'
string type - 'image/png'
base64 bits - что за хрень?
bool overwrite - false


смотрим в исходник /xmlrpc.php
Цитата:
$data = $args[3];
$name = sanitize_file_name( $data['name'] );
$type = $data['type'];
$bits = $data['bits'];


вопроса два:
- что за bits-хрень?
- где путь до картинки?

Полный код функции из исходника

Цитата:
/**
* Uploads a file, following your settings.
*
* Adapted from a patch by Johann Richard.
*
* @link http://mycvs.org/archives/2004/06/30/file-upload-to-wordpress-in-ecto/
*
* @since 1.5.0
*
* @param array $args Method parameters.
* @return array
*/
function mw_newMediaObject($args) {
global $wpdb;

$blog_ID = (int) $args[0];
$username = $wpdb->escape($args[1]);
$password = $wpdb->escape($args[2]);
$data = $args[3];

$name = sanitize_file_name( $data['name'] );
$type = $data['type'];
$bits = $data['bits'];

logIO('O', '(MW) Received '.strlen($bits).' bytes');

if ( !$user = $this->login($username, $password) )
return $this->error;

do_action('xmlrpc_call', 'metaWeblog.newMediaObject');

if ( !current_user_can('upload_files') ) {
logIO('O', '(MW) User does not have upload_files capability');
$this->error = new IXR_Error(401, __('You are not allowed to upload files to this site.'));
return $this->error;
}

if ( $upload_err = apply_filters( "pre_upload_error", false ) )
return new IXR_Error(500, $upload_err);

if ( !empty($data["overwrite"]) && ($data["overwrite"] == true) ) {
// Get postmeta info on the object.
$old_file = $wpdb->get_row("
SELECT ID
FROM {$wpdb->posts}
WHERE post_title = '{$name}'
AND post_type = 'attachment'
");

// Delete previous file.
wp_delete_attachment($old_file->ID);

// Make sure the new name is different by pre-pending the
// previous post id.
$filename = preg_replace("/^wpid\d+-/", "", $name);
$name = "wpid{$old_file->ID}-{$filename}";
}

$upload = wp_upload_bits($name, $type, $bits);
if ( ! empty($upload['error']) ) {
$errorString = sprintf(__('Could not write file %1$s (%2$s)'), $name, $upload['error']);
logIO('O', '(MW) ' . $errorString);
return new IXR_Error(500, $errorString);
}
// Construct the attachment array
// attach to post_id 0
$post_id = 0;
$attachment = array(
'post_title' => $name,
'post_content' => '',
'post_type' => 'attachment',
'post_parent' => $post_id,
'post_mime_type' => $type,
'guid' => $upload[ 'url' ]
);

// Save the data
$id = wp_insert_attachment( $attachment, $upload[ 'file' ], $post_id );
wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $upload['file'] ) );

return apply_filters( 'wp_handle_upload', array( 'file' => $name, 'url' => $upload[ 'url' ], 'type' => $type ), 'upload' );
}

пришел к победе коммунистического труда

0
 

Добрых Дел Мастер

С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227

Ссылка на сообщениеДобавлено: 07/06/11 в 19:03       Ответить с цитатойцитата 

всем спасибо разобрался

пришел к победе коммунистического труда

1
 



С нами с 28.07.07
Сообщения: 425
Рейтинг: 375

Ссылка на сообщениеДобавлено: 08/06/11 в 00:59       Ответить с цитатойцитата 

волшебный Мастер х. как запостишь тему, так и сам разберешься сразу

VPS от 10$.USA/Germany

1
 

Добрых Дел Мастер

С нами с 03.05.08
Сообщения: 3143
Рейтинг: 1227

Ссылка на сообщениеДобавлено: 09/06/11 в 11:28       Ответить с цитатойцитата 

да. такое не так уж редко бывает.

пришел к победе коммунистического труда

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »