Avatar billede Phpdevfam Novice
25. april 2017 - 16:41 Der er 4 kommentarer og
1 løsning

Imgur.com API $Post title og description

Hej Eksperter.

Nu har jeg til uendeligheder bikset med en API kode til imgur.com ..

Det er lykkedes mig at lave et upload af billedet uden nogen problemer, men i dettet uploade ønsker jeg også at have mulighed for at sætte en title og en description på billedet.

Jeg har søgt nettet tynd for et eksempel på hvordan den kode skal se ud men uden held.

Håber en af jer har tid til at vise mig hvordan koden skal se ud for det er muligt.

Her er min nuværende kode :

<!DOCTYPE html>
<html>
<head>
  <title>Image Upload Using Imgur API</title>
</head>
<body>
  <div id="content" style="margin-top:10px;height:100%;">
  <center><h1>Image Upload Using Imgur API</h1></center>
  <form action="index.php" enctype="multipart/form-data" method="POST">
    Choose Image : <input name="img" size="35" type="file"/><br/>
    Title: <input type="text" name="title" />
    Description: <input type="text" name="Description" />
    <input type="submit" name="submit" value="Upload"/>
  </form>
  <?
  if(isset($_POST['submit'])){
    $img=$_FILES['img'];
    if($img['name']==''){
    echo "<h2>An Image Please.</h2>";
    }else{
    $filename = $img['tmp_name'];
    $client_id="xxx";//Your Client ID here
    $handle = fopen($filename, "r");
    $data = fread($handle, filesize($filename));
    $pvars  = array('image' => base64_encode($data));
    $timeout = 30;
    $curl    = curl_init();
    curl_setopt($curl, CURLOPT_URL, 'https://api.imgur.com/3/image.json');
    curl_setopt($curl, CURLOPT_URL, 'https://api.imgur.com/3/m4PT1tr/{test}');
    curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: Client-ID ' . $client_id));
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);
    $out = curl_exec($curl);
    curl_close ($curl);
    $pms = json_decode($out,true);
    $url=$pms['data']['link'];
   
   
    if($url!=""){
      echo "<h2>Uploaded Without Any Problem</h2>";
      echo "<img src='$url'/><br>";
      echo $pms['data']['link']. "<br>";
      echo str_replace("http://","https://", "$url<br>"); // dette er https versionen.
      echo $pms['data']['id']. "<br>";
      echo $pms['data']['type']. "<br>";
    }else{
      echo "<h2>There's a Problem</h2>";
      echo $pms['data']['error']['message'];
    }
    }
  }
  ?>
  </div>
  <style>
  input{
  border:none;
  padding:8px;
  }
  </style>
<!-- http://www.subinsb.com/2013/11/upload-images-with-imgur-api-in-php.html' -->
</body>
</html>
Avatar billede acore Ekspert
25. april 2017 - 20:04 #1
Så vidt jeg kan se får du ikke title og description med over.

Så den linie, hvor du sætter $pvars skal være noget i stil med:

$pvars  = array(
'image' => base64_encode($data),
'title' => $_POST['title'],
'description' => $_POST['Description']
);

Blot et gæt - har ikke nærlæst dokumentationen, og det stemmer med din forklaring om at dte kun er dit image, der kommer over.
Avatar billede Phpdevfam Novice
25. april 2017 - 22:34 #2
Hej og mange tak for dit svar!

Spænede.

Jeg tror bestemt du har ret i det med med array'et..
Jeg for dog fejl når jeg prøver at køre den direkte i koden desværre..

Jeg faldt over dette på imgur's egen hjemmeside https://api.imgur.com/models/image

Men jeg er stadig en smule blank for hvordan jeg skal poste det korrekt ind til imgur.com desværre :(
Avatar billede acore Ekspert
25. april 2017 - 22:39 #3
Kn du beskrive fejlen, du får?
Avatar billede Phpdevfam Novice
25. april 2017 - 22:39 #4
Ov mange gange undskyld havde glemt at få mit client_id ind igen!

Dit svar var den 100% korrekte løsning.

Mange tusinder tak!
Avatar billede acore Ekspert
25. april 2017 - 22:40 #5
Det var godt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester