Helcio
-
Posts
3 -
Joined
-
Last visited
Never
Posts posted by Helcio
-
-
I tried using different code:
<?php
$postData = array();
$postData['fileupload'] = "@" . $_FILES['foto']['tmp_name'];
$postData['submit'] = "Submit";
$postData['key'] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$postData['email'] = "email@email.com";
$postData['rembar'] = "yes";
$postData['optsize'] = "96x96";
$postData['xml'] = "yes";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.imageshack.us/upload_api.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData );
$response = curl_exec( $ch );
curl_close($ch );
echo $response . "<br />";
?>
and the different error message was sent:
Wrong file type detected for file php6JrCec:application/octet-stream
cURL sent file using their temp name and the type verification of the Imageshack was refused.
How can I send files to Imageshack using cURL?
-
I am trying to upload images to Imageshack directly form my site with Imageshack API, using the code bellow:
index.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<form action="curl-form.php" method="post" enctype='multipart/form-data'>
<input type="file" id="foto" name="foto" />
<input type="submit" value="Enviar" />
</form>
</body>
</html>
img.php
<?php
$data = array();
$data['fileupload'] = '@' . $_FILES["foto"]['tmp_name'];
$data['key'] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$data['email'] = 'email@email.com';
$data['rembar'] = 'yes';
$data['optsize'] = '96x96';
$data['xml'] = 'yes';
$post_str = '';
foreach($data as $key=>$val) {
$post_str .= $key.'='.urlencode($val).'&';
}
$post_str = substr($post_str, 0, -1);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.imageshack.us/upload_api.php');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_TIMEOUT, 240);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_str);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch );
curl_close($ch );
if (strpos ( $response, '<' . '?xml version="1.0" encoding="iso-8859-1"?>' ) === false)
{
return NULL;
}
else
{
$xml = new SimpleXMLElement ( $response );
return array (
"image" => $xml->image_link,
"thumb" => $xml->thumb_link );
}
?>
When I upload an image, the following error occurs:
"Sorry, but we've detected that unexpected data is received. Required parameter 'fileupload' is missing or your post is not multipart/form-data"
What is wrong with the code?
How can I send enctype='multipart/form-data' with cURL?
Upload images to Imageshack using cURL
in PHP Coding Help
Posted
I found a solution. I don´t know if this is the better solution, but works fine.
index.htm
imagem.php
I did not use the $_FILES['foto']['type'] function to get the file extension, because if the file type is jpg, this function returns pjpg, generating an error of invalid format in the Imageshack.
The Imageshack then returns a xml that be parsed, with links to the image.
I have another question. When I renamed the file in the temp directory, this file will be automatic deleted or I need to delete the file manually?