login  Naam:   Wachtwoord: 
Registreer je!
 Forum

zip foto's uploaden

Offline robmoorman - 13/04/2006 14:59 (laatste wijziging 13/04/2006 14:59)
Avatar van robmoormanPHP interesse ik krijg het maar niet voor elkaar, ik heb dus een fotoalbumsysteem
nu wil ik dat ik via een .zip bestand uplaoden dat hij de zip uitleest en kijkt als er jpg instaatn, zo ja, moet hij die jpg's uitpakken en in een gfx/photos/{album}/ zetten...

kan iemand mij hier mss mee helpen ?, ik heb die tutorial van zip doorgelezen maar ik krijg dit niet voor elkaar 

3 antwoorden

Gesponsorde links
Offline Rens - 13/04/2006 15:02
Avatar van Rens Gouden medaille

Crew algemeen
Ik denk dat het volgende script best handig is voor jou.
Het script is namelijk gemaakt om zips uit te pakken op een server.
Is een goed voorbeeld.
http://www.site...amp;id=817

En bij het volgende script staat er daar ook een stukje over.
Het begint op regel 269.
http://www.site...amp;id=974
Offline robmoorman - 13/04/2006 15:27 (laatste wijziging 13/04/2006 15:59)
Avatar van robmoorman PHP interesse ok ik hen nu de volgende code:

  1. <?php
  2. class zip {
  3. var $upload_extensies = "jpeg,jpg";
  4. var $naam;
  5. var $tmp_name;
  6. var $type;
  7. var $map;
  8. var $error = "";
  9.  
  10. function extensie($file)
  11. {
  12. return substr($file,strrpos(strtolower($file),".") +1);
  13. }
  14.  
  15. function upload_file($naam, $tmp_name, $map)
  16. {
  17. if (!is_uploaded_file($tmp_name))
  18. {
  19. $this->error .= $naam." is niet goed geüpload.<br />";
  20. return FALSE;
  21. }
  22. $up = move_uploaded_file($tmp_name,$map.$naam);
  23. if (!$up)
  24. {
  25. $this->error .= "Fout bij uploaden van bestand: ".$naam.".<br />";
  26. return FALSE;
  27. }
  28. return TRUE;
  29. }
  30.  
  31. function uitpakken_zip($bestand,$map)
  32. {
  33. $extensies = explode(",", $this->upload_extensies);
  34. if (!function_exists("zip_open"))
  35. {
  36. $this->error .= "Je hebt geen zip-ondersteuning.";
  37. return FALSE;
  38. }
  39. $zip = @zip_open($bestand);
  40. if ($zip)
  41. {
  42. chdir($map);
  43. while($zip_entry = zip_read($zip))
  44. {
  45. if(@zip_entry_open($zip,$zip_entry, "r"))
  46. {
  47. $im = zip_entry_read($zip_entry,zip_entry_filesize($zip_entry));
  48. $name = zip_entry_name($zip_entry);
  49. $extensie = $this->extensie($name);
  50. if (!in_array($extensie,$extensies))
  51. {
  52. $this->error .= "Geen geldige extensie voor bestand: ".$name." . <br />";
  53. }
  54. if (!file_exists($name))
  55. {
  56. $fp = fopen($name,"w");
  57. fwrite($fp,$im);
  58. fclose($fp);
  59. }
  60. else
  61. {
  62. $this->error .= "Het bestand ".$name." bestaat al.<br />";
  63. }
  64. }
  65. else
  66. {
  67. $this->error .= "Fout in het zip-bestand";
  68. }
  69. }
  70. }
  71. else
  72. {
  73. $this->error .= "Fout bij het openen van de Zip file ".$bestand.".<br />";
  74. return FALSE;
  75. }
  76. }
  77.  
  78. function upload_zip($veldnaam, $dir = "gfx/photos/")
  79. {
  80. if (!file_exists($dir))
  81. {
  82. mkdir($dir, 0755);
  83. }
  84. $naam = $_FILES[$veldnaam]["name"];
  85. $tmp_name = $_FILES[$veldnaam]["tmp_name"];
  86. $bestand = $this->upload_file($_FILES[$veldnaam]["name"], $_FILES[$veldnaam]["tmp_name"], $dir);
  87. if ($bestand)
  88. {
  89. $bestand = $dir.$_FILES[$veldnaam]["name"];
  90. $this->uitpakken_zip($bestand, $dir);
  91. unlink($naam);
  92. }
  93. else
  94. {
  95. echo $naam."is niet geupload";
  96. }
  97. }
  98. }
  99. ?>


id roep dit aan met:
  1. <?php
  2. $zip = new zip;
  3. $zip->upload_zip("zip", "gfx/photos/".$_POST["zip_albumid"]."/");
  4. ?>


nu upload het het bestand wel naar de juiste map, maar pakt de jpg bestanden niet uit die in de zip zitten 
Offline jeroentjuh - 13/04/2006 16:21
Avatar van jeroentjuh PHP ver gevorderde Zoiets moet denk ik wel werken:
  1. <?php
  2. //de toegestane extensies
  3. $image_extensions = array('jpg','jpeg','bmp','gif','png');
  4.  
  5. //kijken of het formulier is ingevuld
  6. if($_SERVER['REQUEST_METHOD'] == 'POST') {
  7. //de map waar alles moet worden opgeslagen
  8. $map = 'gfx/photos/'.$_POST['album'].'/';
  9.  
  10. //het zip-bestand uit de tmp map halen
  11. if(move_uploaded_file($_FILES['zip']['tmp_name'],$map.$_FILES['zip']['name'])) {
  12. //kijken of je überhaupt wel zip-ondersteuning hebt
  13. if(function_exists('zip_open')) {
  14. //het zip-bestand openen
  15. if($zip = zip_open($map.$_FILES['zip']['name'])) {
  16. //de map waar je in wilt werken even veranderen
  17. chdir($map);
  18. //alle bestanden in de zip langsgaan
  19. while($zip_entry = zip_read($zip)) {
  20. //kijken of je het bestand kunt openen
  21. if(zip_entry_open($zip,$zip_entry,'r')) {
  22. //de data uit het bestand lezen
  23. $entry_data = zip_entry_read($zip_entry,zip_entry_filesize($zip_entry));
  24. $name = zip_entry_name($zip_entry);
  25. $extension = substr($name,strrpos($name,'.')+1);
  26. //kijken of de extensie toegestaan is
  27. if(in_array($extension,$image_extensions)) {
  28. //kijken of het bestand misschien al bestaat.
  29. if(file_exists($name)) {
  30. //foutmelding geven
  31. echo 'Het bestand \''.$name.'\' bestaat al.';
  32. } else {
  33. //het bestand wegschrijven
  34. $fopen = fopen($name,'w');
  35. fwrite($fopen,$entry_data);
  36. fclose($fopen);
  37. }
  38. }
  39. }
  40. }
  41. } else {
  42. echo 'Kon het zip-bestand niet openen';
  43. }
  44. } else {
  45. echo 'Je hebt geen zip-ondersteuning';
  46. }
  47. //het zip-bestand verwijderen
  48. unlink($map.$_FILES['zip']['name']);
  49. } else {
  50. echo 'Het zip-bestand kon niet worden geupload';
  51. }
  52. } else {
  53. //formulier laten zien:
  54. ?>
  55. <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
  56. Album: <input type="text" name="album"><br />
  57. Zip-bestand: <input type="file" name="zip">
  58. </form>
  59. <?php
  60. }
  61. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.296s