Enviar Contenido a Imageshack con PHP
Todos Conocemos muy bien el servicio de alojamiento de imagenes Imageshack pero y si les digo que por medio de php podemos enviar contenido a los servidores
de Imageshack utilizando funciones simples bueno para eso les explicare el codigo que se tiene que utilizar para realizar el proceso.
Parte 1
<?php
/*
Esta Funcion permitira saber cual es el mimetype de la imagen que queremos enviar a Imageshack
enviandole como parametro el nombre de el archivo.
*/
function MimeType($filename){
$ext = pathinfo($filename);
$ext = $ext['extension'];
switch($ext){
case "bmp": return "image/bmp"; break;
case "gif": return "image/gif"; break;
case "jpe": return "image/jpeg"; break;
case "jpeg": return "image/jpeg"; break;
case "jpg": return "image/jpeg"; break;
case "png": return "image/png"; break;
case "swf": return "application/x-shockwave-flash"; break;
case "tif": return "image/tiff"; break;
case "tiff": return "image/tiff"; break;
default: return ""; break;
}
}
/* A continuacion la Funcion Principal de el script es la que se utiliza para realizar el envio de la informacion */
function imageshackUpload($filename){
$sock = @fsockopen("www.imageshack.us", 80, $errno, $errstr, 30); // Conectamos a Imageshack via fsockopen
// Leemos el archivo a enviar y lo armamos como un binario
$handle = fopen($filename, "r");
$binarydata = fread($handle, filesize($filename));
fclose($handle);
// Identificamos el Mimetype de el archivo
$mimetype = MimeType($filename);
// Armamos el contenido de la peticion
$AaB03x = "--AaB03xrn";
$AaB03x .="content-disposition: form-data; name="uploadtype"rnrn";
$AaB03x .= "onrn";
$AaB03x .= "--AaB03xrn";
$AaB03x .= "content-disposition: form-data; name="fileupload"; filename="".basename($filename).""rn";
$AaB03x .= "Content-Type: $mimetypern";
$AaB03x .= "Content-Transfer-Encoding: binaryrnrn";
$AaB03x .= "$binarydatarn";
$AaB03x .= "--AaB03x--rn";
// Realizamos el Construccion de las cabeceras a enviar a Imageshack
$header = "POST / HTTP/1.1rn";
$header .= "Host: www.imageshack.usrn";
$header .= "Content-type: multipart/form-data, boundary=AaB03xrn";
$header .= "Content-Length: ".strlen($AaB03x)."rnrn";
$header .= $AaB03x;
fwrite($sock, $header); // Creamos el Archivo en ImagesHack
// Procedemos a Escribir el contenido
while (!feof($sock)){
$response .= fgets($sock, 128);
}
// Cerramos la conexion con Imageshack
fclose($sock);
// Finalmente Creamos el enlace que necesitaremos para poder incrustar nuestra imagen en donde queramos
preg_match_all("#<input type="text" onclick="highlight(this)" style="width: 500px" size="70" value="[URL=http://imageshack.us][IMG](.*)[/IMG][/URL]"/>#", $response, $matches);
return $matches[1][0];
}
?>
en esta parte esta el codigo referente al formulario en html que se va a usar para que trabaje con el script en php
parte 2 formulario
<html>
<?php if(!isset($_POST['sub'])){ ?>
<form method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Enter path to file: <input type="text" name="test" /><br />
<input type="submit" name="sub" />
</form>
<?php } else {
echo imageshackUpload($_POST['test']);
}?>
</html>
Este Codigo no ha sido testiado, para poder usarlo tu servidor debera soportar fsockopen para la conexion cualquier duda en el foro
No Todos se lo podemos responder desde los comentarios, para cualquier duda o sugerencia los invitamos tambien a usar el FORO y las REDES Sociales, Saludos a Todos