使用php的图像上传 - 卷曲
答
的基本思想
<?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更多信息。
答
<?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);
?>
Hello RageZ, 感谢您的回答。但是,我没有在我的代码中使用数组。我使用如下: $ Post = Filefieldname =“” 现在我不知道该写些什么“”,以便可以上传图像。 – Aditya
你应该使用一个数组来创建curl_setopt,如果你不使用数组,你必须自己编码文件。为什么你无法使用数组? – RageZ
当我使用数组时,浏览字段没有被自动填充,所以我使用了单行url作为$ post =“field_name = name&password = password&Filefieldname = ???&button_name = Continue”; 所以我只是如果我可以用上传图片的东西替换上面的问号。 – Aditya