website de prueba: www.abfantasy.idv.tw
Código PHP :
<html>
<title>Uploader webdav</title>
<form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
<input type="text" size="50" name="url" />
<input name="archivo" type="text" />
<input type="submit" name="enviar" value="enviar">
</form>
<p></p>
<?php
$url=isset($_POST['url'])? $_POST['url']: false;
$archivo=isset($_FILES['archivo'])? $_FILES['archivo']: false;
if ($url){
$tamanio=filesize($archivo); //obtenemos el tamanio del archivo
$pagina=curl_init($url);
curl_setopt($pagina,CURLOPT_HTTPHEADER,Array("PUT /$archivo HTTP/1.1\r\n"));
curl_setopt($pagina,CURLOPT_HTTPHEADER,Array("Host:".$url."\r\n"));
curl_setopt($pagina,CURLOPT_HTTPHEADER,Array("Destination:$url$archivo\n\n"));
curl_setopt($pagina,CURLOPT_HTTPHEADER,Array("Content-Length: ".$tamanio."\r\n\r\n"));
curl_setopt($pagina, CURLOPT_HTTPHEADER,Array('Content-Type: text/xml; charset="utf-8"'."\r\n"));
curl_setopt($pagina,CURLOPT_HTTPHEADER,Array("Connection:close\r\n"));
curl_setopt($pagina, CURLOPT_HEADER, 1);
curl_setopt($pagina, CURLOPT_PUT, TRUE); //activamos put
curl_setopt($pagina, CURLOPT_INFILESIZE,$tamanio);
curl_setopt($pagina,CURLOPT_UPLOAD,TRUE);
$resultado=curl_exec($pagina);
curl_close($pagina);
}
else
{
echo "Rellena los campos";
}
?>
ese anterio usa curl ahora con sockets
Código PHP :
<form name="formu" method="post" action="" enctype="multipart/form-data">
La url<input type="text" name="url"><br>
el path<input type="text" name="path"><br>
el archivo<input type="text" name="archivo"><br>
<input type="submit" name="enviar" value="enviar">
</form>
<?php
if(isset($_POST['url'])){
$host=$_POST['url'];
$archivo=$_FILES['archivo'];
$path=$_POST['path'];
$ock=fsockopen($host, 80,$errno, $errstr);
$sock.="PUT $path$archivo HTTP/1.1\r\n";
$sock.="Host: $url\r\n";
$sock.='Content-Type: text/xml; charset="utf-8"'."\r\n";
$sock.="Connection:close\r\n";
$sock.="Content-Length: ".filesize($archivo)."\r\n\r\n";
fputs($ock,$sock);
echo $sock;
fclose($ock);
}
?>espero su ayuda y gracias
