2010-09-07 6 views
0

Im essayant d'utiliser imageshshack api en phpfichier d'affichage "multipart/form-data" par php

de la manière suivante:

<?php 
function do_post_request($url, $data, $optional_headers = null) { 
    $params = array('http' => array(
       'method' => 'POST', 
       'content' => $data 
      )); 
    if ($optional_headers !== null) { 
    $params['http']['header'] = $optional_headers; 
    } 
    $ctx = stream_context_create($params); 
    $fp = @fopen($url, 'rb', false, $ctx); 
    if (!$fp) { 
    throw new Exception("Problem with $url, $php_errormsg"); 
    } 
    $response = @stream_get_contents($fp); 
    if ($response === false) { 
    throw new Exception("Problem reading data from $url, $php_errormsg"); 
    } 
    return $response; 
} 

    $fileName = $_FILES['picture']['name']; 
    $tmpName = $_FILES['picture']['tmp_name']; 
    $fileSize = $_FILES['picture']['size']; 
    $fileType = $_FILES['picture']['type']; 
    $fo = @fopen($tmpName, "r"); 
    $imgposted = @fread($fo, filesize($tmpName)); 
    $imgposted = addslashes($imgposted); 

    $data = 'fileupload='.$imgposted.'&rembar=1&key=******'; 
    echo do_post_request('http://www.imageshack.us/upload_api.php',$data); 

?> 

mais les données sont affiché normalement, je voulais être posté comme si j'avais un formulaire avec cet attribut:

enctype="multipart/form-data" 

une solution?

Répondre

0
 

do_post_request(
    'http://www.imageshack.us/upload_api.php', 
    $data, 
    'Content-Type: multipart/form-data') 
); 
 
+0

vous tricheur :-P – aularon

+0

@racetrack: merci, mais cette erreur apparaît: Fatal error: Uncaught exception 'Exception' message « un problème http://www.imageshack.us/upload_api.php, 'dans /var/www/html/test/imageshack/rec.php:14 Stack trace: # 0 /var/www/html/test/imageshack/rec.php(31): do_post_request (' http: // www. imag ... ',' fileupload =? PNG ... ', Array) # 1 {main} lancé dans /var/www/html/test/imageshack/rec.php à la ligne 14 –

+0

@ el7r Mise à jour de la réponse, essayez le nouveau (en remplaçant le tableau, avec une chaîne). – racetrack

0

Vous devez définir comme un en-tête:

$optional_headers = array(
    'Content-Type'=>'multipart/form-data' 
); 

Lorsque vous appelez la fonction:

do_post_request('http://www.imageshack.us/upload_api.php', array(
    'Content-Type'=>'multipart/form-data' 
)); 

EDIT: Je pense que vous avez aussi à url_encode plutôt que de faire addslashes .

+0

J'ai essayé urlencode, toujours pas envoyé en tant que 'multipart/form-data ' –