Dropbox galéria fajlok letöltése


Drop-Box Online szolgáltatás 2 GB ingyen tárhely amire szinkonizálhatsz egy lokális mappát és még több!Gondolom már TI is tapasztaltátok, mennyire gyorsan rá lehet kattanni egy-egy profi online szolgáltatásra. Jelen esetben Én is így jártam (korzó cipőben) a Drop Box-szal.

A szolgáltatásról és a kliensprogramról röviden annyit, hogy 2 GB-ig ingyenes webes tárhely és egy lokális mappádat tart szinkronban a kliensprogram a weben lévő verzióval. Plusz ezt szorozd be akárhány géppel és adj hozzá néhány extra funkciót, mint a galéria létrehozása..



fotógaléria szolgáltatását emelném ki, de ahhoz hogy megismerd regisztrálnod kéne az ingyenes 2 GB-os szolgáltatásért. Ha egy már a rendszerben lévő felhasználón keresztül regisztrálsz +250 MB tárhelyet kapsz Te is és a delikvens is. Ha bővebben a mya5.hu ingyenes szoftverek oldalon olvashatsz.

A galéria létrehozásáról

A kliens programod létrehoz egy dropbox/photos mappát. A photos-on belül hozzál létre egy új galéria mappát és bombázd bele a képeidet (ennyi). A többit a szoftver szinkron közben megcsinálja.

  • átnevezi
  • átméretezi
  • megváltoztatja a mime típusát (aminek annyira nem örülök), főleg azért mert az eredeti méretét nem, de még is jpg típusként adja vissza pl. : egy png-nél
  • Online prezentálja
  • Linket küldhetsz róla

És mindezt úgy hogy akár rá sem kell nézned.. Csak jobb egérgombot nyomsz az adott mappán és ott lesz a link ami a galériádra mutat.

drop-box fotógaléria mappa linkjének a megszerzése

És itt jön az Elmegyógyintézet

Arra gondoltam ha már van Drop box-om miért ne fejlesztenék az új CMS-embe egy töltsd fel a Dropbox-ra, vagy szinkronizáld a Dropbox-ra, vagy csinálj Dropbox galériából helyi fájlokat. Előfordulhat, hogy egy fájt ami webről érkezik meg akarok osztani több gép között (Főleg ha vírusos :-) vagy fordítva. Miért ne lehetne egy galériát lokális mappából kezelni? Bár működik benne a jQuery Uploadify ami szintén kötegelt műveletként hajtja végre a feltöltéseket, de ez se maradjon ki.

Saját festményem amit ecsetek nélkül puszta kézzel festettem

A galéria fájlok kinyerésének egyik primitív változatát megosztom veletek (tesztelős fájlok). A proginak gyakorlatilag a linket kell megadni és Apache + PHP kell hozzá. Webszerverről futtatva leszedi az adott galéria képelemeit és belerakja egy mappába.

  1. <?php
  2. error_reporting(E_ERROR);
  3. set_time_limit(0);
  4.  
  5. //url or file
  6. $dropBoxGallery    ="http://www.dropbox.com/gallery/3855935/1/arth2o-com?h=41472c";
  7.  
  8. //tplFileName   #prefix#pic#num#.#extension#
  9. $fileNameTpl    ="%spic%d.%s";
  10.  
  11. //directory
  12. $dir            =dirname(__FILE__)."/img/";
  13. mkdir($dir, 0777);
  14.  
  15. //get HTML Gallery DropBox
  16. $html = file_get_contents($dropBoxGallery);
  17.  
  18. //variable
  19. $patterns=$origin=$large=$thumb=array();
  20.  
  21. //get Images Path (l)
  22. preg_match_all('/(href=")(.*?)(")(.*)(rel="lightbox\[album\]")/im',$html, $patterns);
  23.  
  24. if(!is_array($patterns[2])){
  25.     die("Picture not found");
  26. }
  27.  
  28. //thumb path
  29. $thumbs = explode("||", str_replace("/i/l/", "/i/m/", implode("||", $patterns[2])));
  30. $origin = explode("||", str_replace("/i/l/", "/i/o/", implode("||", $patterns[2])));
  31. $large     = $patterns[2];
  32.  
  33. //array
  34. echo "<pre>";var_dump($origin, $large, $thumbs);echo "</pre>";
  35.  
  36. unset($origin, $large);
  37.  
  38. //size prefix => variable
  39. $size=array(
  40.             "m" =>     "thumb",
  41.             "l"    =>    "large",
  42.             "o"    =>    "origin",
  43. );
  44.  
  45. //contentType -> fileExtension
  46. $contentType=array(
  47.             "image/jpeg"     => "jpg",
  48.             "image/png"     => "png",
  49.             "image/gif"     => "gif",
  50.             "image/bmp"     => "bmp",
  51. );
  52.  
  53. $i=1;
  54. foreach($thumbs as $thumb){
  55.    
  56.     $large    =str_replace("/i/m/", "/i/l/", $thumb);
  57.     $origin    =str_replace("/i/m/", "/i/o/", $thumb);
  58.    
  59.     //3 image size
  60.     foreach($size as $sizePrefix => $variable){
  61.        
  62.         //get Pic
  63.         $f=false;   
  64.         $f=fopen($$variable, "r");
  65.        
  66.         /*
  67.          * Array
  68.             (
  69.                 [wrapper_data] => Array
  70.                 (
  71.                     [0] => HTTP/1.1 200 OK
  72.                     [1] => Server: dbws
  73.                     [2] => Date: Fri, 29 Jan 2010 15:54:23 GMT
  74.                     [3] => Content-Type: image/jpeg
  75.                     [4] => Connection: close
  76.                     [5] => content-length: 5212
  77.                     [6] => pragma: no-cache
  78.                     [7] => cache-control: no-cache
  79.                 )
  80.  
  81.                 [wrapper_type] => http
  82.                 [stream_type] => tcp_socket/ssl
  83.                 [mode] => r+
  84.                 [unread_bytes] => 1268
  85.                 [seekable] =>
  86.                 [uri] => http://photos-1.dropbox.com/i/m/...
  87.                 [timed_out] =>
  88.                 [blocked] => 1
  89.                 [eof] =>
  90.             )
  91.         */
  92.         $fileHeaders = array();
  93.         $fileHeaders = stream_get_meta_data($f);
  94.        
  95.         //fileSize
  96.         $fileSize = array();       
  97.         $fileSize = explode("content-length: ", trim($fileHeaders["wrapper_data"][5]));
  98.        
  99.         if($fileSize[1]<1){
  100.             //bibi van kicsi a fájlméret
  101.             continue;
  102.         }
  103.        
  104.         $kep="";
  105.         while(!feof($f))
  106.             $kep.=fread($f,$fileSize[1]);
  107.         fclose($f);
  108.        
  109.         //[0] = Content-Type: [1] = mimetypes
  110.         $tmp = array();
  111.         $tmp = explode("Content-Type: ", trim($fileHeaders["wrapper_data"][3]));
  112.        
  113.         //fileExtension
  114.         $fileExtension = $contentType[$tmp[1]];       
  115.            
  116.         if(!empty($kep)):
  117.            
  118.             //fileName %spic%d.%s
  119.             $fileName = sprintf($fileNameTpl, $sizePrefix, $i, $fileExtension);
  120.            
  121.            
  122.             //save Pic
  123.             file_put_contents("{$dir}{$fileName}", $kep);
  124.             chmod("{$dir}{$fileName}", 0777);
  125.             echo "{$dir}{$fileName}<hr>";
  126.         endif;
  127.                
  128.     }
  129.    
  130.     $i++;
  131.    
  132. }

Vannak komplexebb megvalósítások pl.: Wordpress-hez, Joomla vagy Dupálhoz, de ehhez látogasd meg az API oldalát.

 


Online Tools, Drop Box, PHP dropbox, photos, php








Hozzászólás beküldése:


http://domain.tld (nofollow)
 ____   ____   ____  ____  _  _  __  __ 
(  _ \ ( ___) (_  _)( ___)( \( )(  )(  )
 )(_) ) )__) .-_)(   )__)  )  (  )(__)( 
(____/ (____)\____) (____)(_)\_)(______)



 
 
 
 
Powered By: PHP, Smarty, MySQL, CodeIgniter, jQuery, ArtH2O