2010-12-07 2 views
0

Мне нужно отправить необработанные многостраничные данные с помощью php POST, но без формы html ... im запускает процесс с помощью jquery $ .post() вместо этого (цель заключается в изменении фона учетной записи Twitter).

Как я могу это достичь? Это мой текущий (и еще не завершен) Код:

1) имя файла изображения вставленная в скрытом поле ввода:

<input type="hidden" id="profile_background_image_url" value="oats.jpg" /> 

2) при нажатии на кнопку отправки, Javascript функция запускается .. ., и называет:

$.post('helper.php',{ 
profile_background_image_url:$('#profile_background_image_url').val() 
}); 

3) helper.php имеет

$param = array(); 
$param['image'] = '/www/uploads/'.$_POST['profile_use_background_image']; 
$status = $connection->post('account/update_profile_background_image',$param); 

Примечание:

  1. всех фоновые файлы находятся внутри /WWW/дата загрузки локального каталога.
  2. им с помощью Abraham Уильямса twitteroauth библиотека 0,2

нижней строке, на третьем этапе мне нужно отправить $ параметров [ „изображения“] в сырых многочастных данных к $ соединения объекта (twitter library).

Любые идеи?

Некоторые ссылки: http://dev.twitter.com/doc/post/account/update_profile_background_image

+0

Будет ли `file_get_contents()` работать? – alex 2010-12-07 02:24:22

+0

nope, это не :( – andufo 2010-12-07 02:27:09

ответ

1

Да я вижу теперь, что ГЭС строят массив разместить поля в строку запроса, которая означает, что вы должны вручную установить тип содержимого и что @ ключ в image полях обыкновение делать свою магию поскольку это работает только с аргументом массива. Что еще более важно, я не вижу способа изменить заголовки без взлома библиотеки или расширения ее и замены определенных функций.


Я хотел бы попробовать бы предваряя @ к файлу из image пар как:

$param['image'] = '@/www/uploads/'.$_POST['profile_use_background_image']; 

То есть удобный способ сделать это с локон, и это выглядит как libray в основном использует cURL, чтобы сделать запрос, чтобы он работал.

0

решена!

curl_setopt($ci, CURLOPT_POST, TRUE); 
     if(is_array($files)){ 
      $post_file_array = array(); 
      foreach($files as $key=>$value){ 
      $post_file_array[$key] = "@{$value}"; 
      } 
      curl_setopt($ci, CURLOPT_POSTFIELDS, $post_file_array); 
      if (!empty($postfields)) { 
      $url = "{$url}?{$postfields}"; 
      } 
     } 
     else if (!empty($postfields)) { 
      curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields); 
     } 
Смежные вопросы