图像上传使用php - curl

时间:2009-11-07 06:16:45

标签: php curl image-uploading

我们正在努力使用php-curl自动上传图像。如果有任何办法,请告诉我。

2 个答案:

答案 0 :(得分:7)

基本理念

<?php
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_VERBOSE, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)");
    curl_setopt($ch, CURLOPT_URL, _VIRUS_SCAN_URL);
    curl_setopt($ch, CURLOPT_POST, true);
    // same as <input type="file" name="file_box">
    $post = array(
        "file_box"=>"@/path/to/myfile.jpg",
        "username"=>"foobar",
        "password"=>"secret",
        "submit"=>"submit"
    );
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
    $response = curl_exec($ch);
?>

您可以获得有关curl here的更多信息。

答案 1 :(得分:1)

<?php

/*
ini_set('display_errors',1);
error_reporting(E_ALL);
*/
include('_db.php');
include('_session.php');




$business_id = $session->business->id;
$error = "";
$output = "";

if ($_FILES["file"]["type"] == "image/gif" || $_FILES["file"]["type"] == "image/jpeg" || $_FILES["file"]["type"] == "image/pjpeg" || $_FILES["file"]["type"] == "image/png")
{
    if ($_FILES["file"]["error"] > 0)
    {
        $error = $_FILES["file"]["error"];
        echo "{error: '". $error ."', msg: ''}";
    }
    else
    {
        //set POST variables
        $url = 'http://img.mySite.com/';

        $fields = array(
                    //assign filetype the file extension
                    'filetype'=>substr(strrchr($_FILES["file"]["name"], '.'), 1),
                    //give the file id a unique id
                    'fileid'=>$business_id . ":" . date('YmdGisu') .":". $_FILES["file"]["name"],
                    //read image data into a string using file get contents
                    'content'=>file_get_contents($_FILES['file']['tmp_name'])
                );

        //open connection
        $ch = curl_init();

        //set the url, number of POST vars, POST data
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_VERBOSE, 0);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)");
        curl_setopt($ch,CURLOPT_URL,$url);
        curl_setopt($ch,CURLOPT_POST,true);
        curl_setopt($ch,CURLOPT_POSTFIELDS,$fields);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

        //execute post
        $output = curl_exec($ch);
        if($output == false)
            $error = "Fail.";
        echo "{error: '". $error ."', msg: '" . $output . "'}";

        //close connection
        curl_close($ch);
    }
  }
  else
  {
    $error = "Incorrect File Format.";
    echo "{error: '". $error ."', msg: ''}";
  }
mysql_close($link);

?>