2009-11-07 78 views

回答

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); 
?> 

你可以有大约卷曲here更多信息。

+0

Hello RageZ, 感谢您的回答。但是,我没有在我的代码中使用数组。我使用如下: $ Post = Filefieldname =“” 现在我不知道该写些什么“”,以便可以上传图像。 – Aditya

+0

你应该使用一个数组来创建curl_setopt,如果你不使用数组,你必须自己编码文件。为什么你无法使用数组? – RageZ

+0

当我使用数组时,浏览字段没有被自动填充,所以我使用了单行url作为$ post =“field_name = name&password = password&Filefieldname = ???&button_name = Continue”; 所以我只是如果我可以用上传图片的东西替换上面的问号。 – Aditya

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); 

?>