Public paste
Undefined
By: PnE | Date: Oct 8 2008 19:20 | Format: PHP | Expires: never | Size: 1.72 KB | Hits: 1207

  1. <?php
  2.  
  3. // Initiera Curl
  4. $curl = curl_init();
  5.  
  6. // Användare osv..
  7. $user = "demo";
  8. $password = "";
  9.  
  10.  
  11. // Vart vi ska
  12. $filename = "./video.jpg?size=3";
  13.  
  14. //Storlek på filen
  15. $size = filesize($filename);
  16.  
  17. // Öppna filen
  18. $file = fopen($filename,'r');
  19.  
  20. list(,$destinationFilename) = pathinfo($filename);
  21.  
  22.  
  23. // Den DAV-enablade URLen till att hämta ifrån
  24.  
  25. $url = "http://lan:85/cgi-bin/{$destinationFilename}";
  26.  
  27.  
  28. // Göra så att cURL fattar allt den ska göra
  29. // ladda in destinationen i cURL
  30.  
  31. curl_setopt($curl,CURLOPT_URL,$url);
  32.  
  33. // Säga att vi gör en PUT.
  34.  
  35. curl_setopt($curl,CURLOPT_PUT,true);
  36.  
  37. // Uppfatta och presentera filstorleken som vi kör PUT på
  38.  
  39. curl_setopt($curl,CURLOPT_INFILESIZE,$size);
  40.  
  41. // Ladda in filen i dens resource handling
  42.  
  43. curl_setopt($curl,CURLOPT_INFILE,$file);
  44.  
  45. // Sätta en user-agent
  46.  
  47. curl_setopt($curl,CURLOPT_USERAGENT,"Mozilla/4.0");
  48.  
  49. // Returnera outputen istället för att visa den
  50.  
  51. curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
  52.  
  53.  
  54. // Stoppa in namn och lösen
  55.  
  56. if(!empty($user) && !empty($password))
  57.  
  58.     curl_setopt($curl,CURLOPT_USERPWD,$user . ":" . $password);
  59.  
  60. // Utifall du kommer använda SSL och inte vill betala för nått riktigt
  61.  
  62.  
  63. if(ereg("^(https)",$url))
  64.     curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
  65.  
  66. // Kör och logga i curl_put.log
  67.  
  68. $result = curl_exec($curl);
  69. $error = curl_error($curl);
  70.  
  71. if(empty($error))
  72.  
  73.     list($return,,$message) = split("(r?n){1,}",trim(strip_tags($result)));
  74.  
  75. else {
  76.  
  77.     $return = "Error";
  78.  
  79.     $message = curl_error();
  80.  
  81. }
  82.  
  83.  
  84.  
  85. $log = fopen('curl_put.log','a');
  86.  
  87.  
  88.  
  89. fwrite($log,date("r - ") . $return . "rn" . $message . "rnrn");
  90.  
  91.  
  92. // Städa upp!
  93.  
  94. fclose($log);
  95. curl_close($curl);
  96.  
  97.  
  98. ?>