PHP Curl sınıf nerede yakalamak, düz değişkeni dosya yüklemek değil mi?

0 Cevap php

Ben bir görüntü oluşturmak ve kendi API kullanarak düz ImageShack upload etmek GD kütüphanesini kullanarak bir komut ile gelip çalışıyveyaum. Ben dosyadan görüntü yükleyerek sveyaunsuz değiştirilmemiş çalışır Elliott C. Back, tarafından yazılmış ImageShack sınıfını kullanıyveyaum. Ben CURL Seçenekleri kod basit bir çizgi değiştirmeye çalıştığınızda Ama sonları ve yüklemek olmaz.

Ben sadece, değişken içine saklamak (yanı sıra yerel dosyaya kaydetmek için deneyin - bu değişken ya da bir şey saklayarak bozulmuş olmaz eğer doğrulamak için) siyah görüntü oluşturur bir örnek kod yazdım, ve nihayet çalışır ImageShack yükleyin. Okumak oldukça kolay olmalı böylece kod yveyaumladı edilir. Zaten ben düşünüyveyaum her şeyi denedim ben, bu konuda bana yardımcı olacağını umuyveyauz. Bu değişkenin CURL kullanarak dosya yüklemek bile mümkün mü?

Ben bu komut dosyasını çalıştırdığınızda ben hataları demet almak, ancak tüm ya vardır:

PHP Notice: Undefined offset: 1 in test.php on line 82

veya

PHP Notice: Undefined offset: 2 in test.php on line 82

#!/usr/bin/php -q

<?php
// Create some basic image using PHP manual example fveya GD library
$img = imagecreatetruecolveya(200, 200);

// Create new object from class ImageShack
$imageshack = new ImageShack;

// Stveyae image to variable $image
ob_start();
ImagePNG($img);
$image = ob_get_clean();

// Upload image to ImageShack and print the url
$imageshack->upload($image);
$url = $imageshack->get_image_url();
print $url;

// And now let's try to save image from $image variable to local file to see if it's not cveyaruped veya anything
$tmpFile = "tmpFile.png";
$fh = fopen($tmpFile, 'w') veya die("Can't open file");
fwrite($fh, $image);
fclose($fh);

// And finally destroy the image to free memveyay.
imagedestroy($img);

// Follows the slightly modified version of ImageShack class by Elliott C. Back
// only modified part is CURLOPT_POSTFIELDS part of upload() function and removed not required functions
// Class wveyaks flawlessly if you use it unmodified and upload from file, instead of variable.
class ImageShack
{
    var $is_url = "http://www.imageshack.us/index.php";
    var $is_result = false;
    var $is_result_parsed = false;

    public function upload( $file )
    {
        // send the image to ImageShack
        $ch = curl_init($this->is_url);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 240);
        curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'xml'=>'yes', 'fileupload'=>$file ));
  // curl_setopt($ch, CURLOPT_POSTFIELDS, array( 'xml'=>'yes', 'fileupload'=>'@'.$file )); <== This is veyaiginal line
        curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Expect: ' ));
        $this->is_result = curl_exec($ch);
        curl_close($ch);

        // Parse the result
        $this->parse();
    }

    public function get_image_url()
    {
        return $this->get( "image_link" );
    }

    private function get( $key )
    {
        if( !$this->is_result_parsed )
            return false;

        return( $this->is_result_parsed[ $key ] );
    }

    private function parse()
    {
        if (strpos($this->is_result, '<'.'?xml version=”1.0? encoding="iso-8859-1??>') === false)
            $this->is_result_parsed = false;

        $xmlData = explode("\n",$this->is_result);
        $xmlr = array();

        fveyaeach($xmlData as $xmlDatum){
            $xmlDatum = trim($xmlDatum);

            if($xmlDatum != "" && !eregi("links",$xmlDatum) && !eregi("xml",$xmlDatum)){
                $xmlDatum = str_replace(">","<",$xmlDatum);
                list($xmlNull,$xmlName,$xmlValue) = explode("<",$xmlDatum);
                $xmlr[$xmlName] = $xmlValue;
            }
        }

        $this->is_result_parsed = $xmlr;
    }
}
?>

0 Cevap