login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Foto uploaden en read permissies zetten

Offline blindact - 31/05/2005 16:58
Avatar van blindactNieuw lid Hallo

Ik heb een uploadscriptje die probleemloos werkt om een jpg file te uploaden naar mijn map uploads.
Maar iedere jpg dat ik upload krijgt geen read en write rechten.
Ik moet dat handmatig instellen voor ik ze op mijn webruimte kan bekijken.
Kan ik in mijn script verwerken dat het geuploade bestand direct de read rechten krijgt?

Dank

12 antwoorden

Gesponsorde links
Offline Legolas - 31/05/2005 16:59
Avatar van Legolas Onbekend Met de functie chmod()
Zie het overzicht
Offline gijs - 31/05/2005 17:19
Avatar van gijs HTML beginner Met ws_ftp pro kan het ook, dan doe je rechtermuisknop op het bestand en dan 'properties', daar kan je het ook instellen.
Offline nemesiskoen - 31/05/2005 17:21
Avatar van nemesiskoen Gouden medaille

PHP expert
@gijs... lees dit eens:

Citaat:
Ik moet dat handmatig instellen voor ik ze op mijn webruimte kan bekijken.


Dat is precies wat jij beschrijft. Hij wil dit voorkomen en jij zegt dat hij het ook zo kan doen:s!!
Offline blindact - 31/05/2005 17:28
Avatar van blindact Nieuw lid Met de functie chmod wil het niet werken. Het is op een IIS server met windows 2003

Dit is mijn script:

  1. <?php
  2. include "config.php";
  3. ?>
  4. <html>
  5. <head>
  6. <title>Showroom aanvullen</title>
  7. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
  8. <body bgcolor="#FFFFFF" text="<?php echo "$font" ?>" link="<?php echo "$font" ?>" vlink="<?php echo "$font" ?>" alink="<?php echo "$font" ?>">
  9. <div align="center">
  10. <form method="post" action="<?php $PHP_SELF ?>" enctype="multipart/form-data">
  11. <table width="80%" border="0" cellpadding="0" cellspacing="5" background="images/bg.jpg">
  12. <tr>
  13. <td><div align="center">
  14. <table width="100%" border="0" cellpadding="0" cellspacing="5" bgcolor="336699">
  15. <tr>
  16. <td><div align="center"><strong><font color="#FFFFFF" size="3" face="Arial, Helvetica, sans-serif">::Artikel
  17. Aanvullen::</font></strong></div></td>
  18. </tr>
  19. </table>
  20. </div></td>
  21. </tr>
  22. <tr>
  23. <td valign="top" background="images/bg.jpg"> <div align="left"></div>
  24. <table width="100%" height="217" border="0" cellpadding="0" cellspacing="5">
  25. </table>
  26. <table width="100%" border="0" cellspacing="0" cellpadding="5">
  27. <tr>
  28. <td width="27%">Artikel</td>
  29. <td width="73%"><select name="artikel">
  30. <option>kies</option>
  31. <option>kledij</option>
  32. <option>produkten</option>
  33. <option>geboortelijsten</option>
  34.  
  35. </select></td>
  36. </tr>
  37. <tr>
  38. <td>Titel</td>
  39. <td><input type="text" name="titel"></td>
  40. </tr>
  41. <tr>
  42. <td>Omschrijving</td>
  43. <td><textarea name="omschrijving" cols="50" rows="6" id="omschrijving"></textarea></td>
  44. </tr>
  45. <tr>
  46. <td>Prijs:</td>
  47. <td><input type="text" name="prijs"></td>
  48. </tr>
  49. <tr>
  50. <td>Foto</td>
  51. <td><input type="file" name="foto"></td>
  52. </tr>
  53. <tr>
  54. <td>&nbsp;</td>
  55. <td><input type="submit" name="submit" value="Toevoegen"></td>
  56. </tr>
  57. </table></td>
  58. </tr>
  59. </table></form>
  60. <?
  61.  
  62. if ($_POST ['submit'])
  63. {
  64.  
  65.  
  66.  
  67. $artikel= $_POST['artikel'];
  68. $omschrijving= $_POST['omschrijving'];
  69.  
  70. }
  71.  
  72. if($artikel== "kies") $error="Je moet het artikel selecteren";
  73. elseif($omschrijving== "") $error="Je moet de omschrijving invullen!";
  74.  
  75. if ($error== "")
  76. {
  77. //foto uploaden
  78.  
  79. $maxgrootte = 250; //grootte in kb's
  80.  
  81. $uploadmap ="../uploads/";
  82. $newmaxgrootte = $maxgrootte*1024;
  83. if(is_uploaded_file($foto)) { // is het bestand eengeüpload bestand?
  84.  
  85. $bestand_name = $_FILES['foto']['name']; //naamvan het geuploade bestand
  86. $bestand_type = $_FILES['foto']['type'];
  87.  
  88. //MIME-header van het geuploade bestand (bijvoorbeeldimage/pjpeg)
  89. $bestand_size = $_FILES['foto']['size'];
  90.  
  91. //grootte in bytes van het geuploade bestand
  92.  
  93. if ($bestand_size > $newmaxgrootte){
  94. $tegroot = round($bestand_size/1024);
  95.  
  96. echo "Het bestand is groter dan ".$maxgrootte."kb
  97.  
  98. (namelijk ".$tegroot."kb), wat niet toegstaan is.<br>";
  99. }
  100.  
  101. if (file_exists($uploadmap.$bestand_name)){
  102.  
  103. echo "Het bestand ".$bestand_name." bestaat al!<br>Hernoem het bestand op je harde schijf en probeer dan nog eens te uploaden.<br>";
  104.  
  105.  
  106. }
  107.  
  108. move_uploaded_file($foto,$uploadmap.$bestand_name);
  109.  
  110. $nwbestandgrootte = round($bestand_size/1024);
  111.  
  112. echo "Bestand ".$bestand_name." van het type ".$bestand_type." en ".$nwbestandgrootte."KB is met succes ge-upload!<br>";
  113.  
  114. }
  115.  
  116. else {
  117.  
  118. echo "Er is geen foto upgeload.<br>";
  119.  
  120. }
  121.  
  122. //einde foto uploaden
  123.  
  124. $query = "INSERT INTO babyshop (artikel,titel,omschrijving,prijs,foto) VALUES ('$artikel','$titel','$omschrijving','$prijs','$bestand_name')";
  125. mysql_query($query) or die (mysql_error());
  126. }
  127. ?>
  128. </div>
  129. </body>
  130. </html>
Offline Ontani - 31/05/2005 17:32 (laatste wijziging 31/05/2005 17:35)
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
  1. <?
  2. $old_umask = umask(0);
  3. chmod("filename", 0755);
  4. ?>


uitleg bij umask:

Citaat:
For example, umask = 0011 and permission = 0775
The inverse of 0011 = 0766

0775 AND 0766
= 111.111.101 AND 111.110.110
= 111.110.100
= 0764
Offline gijs - 31/05/2005 17:46
Avatar van gijs HTML beginner @ nemesiskoen: sorry, had het niet helemaal goed gezien 
Offline blindact - 31/05/2005 20:31
Avatar van blindact Nieuw lid En waar zou ik dat het beste plaatsen
Offline ikkedikke - 31/05/2005 20:37
Avatar van ikkedikke PHP expert regel 111?
chmod($uploadmap.$bestand_name,0764); //0764: zoals ik uit die post van ontari begrijp
Offline Ontani - 31/05/2005 21:17
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
  1. <?php
  2. include "config.php";
  3. ?>
  4. <html>
  5. <head>
  6. <title>Showroom aanvullen</title>
  7. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
  8. <body bgcolor="#FFFFFF" text="<?php echo "$font" ?>" link="<?php echo "$font" ?>" vlink="<?php echo "$font" ?>" alink="<?php echo "$font" ?>">
  9. <div align="center">
  10. <form method="post" action="<?php $PHP_SELF ?>" enctype="multipart/form-data">
  11. <table width="80%" border="0" cellpadding="0" cellspacing="5" background="images/bg.jpg">
  12. <tr>
  13. <td><div align="center">
  14. <table width="100%" border="0" cellpadding="0" cellspacing="5" bgcolor="336699">
  15. <tr>
  16. <td><div align="center"><strong><font color="#FFFFFF" size="3" face="Arial, Helvetica, sans-serif">::Artikel
  17. Aanvullen::</font></strong></div></td>
  18. </tr>
  19. </table>
  20. </div></td>
  21. </tr>
  22. <tr>
  23. <td valign="top" background="images/bg.jpg"> <div align="left"></div>
  24. <table width="100%" height="217" border="0" cellpadding="0" cellspacing="5">
  25. </table>
  26. <table width="100%" border="0" cellspacing="0" cellpadding="5">
  27. <tr>
  28. <td width="27%">Artikel</td>
  29. <td width="73%"><select name="artikel">
  30. <option>kies</option>
  31. <option>kledij</option>
  32. <option>produkten</option>
  33. <option>geboortelijsten</option>
  34.  
  35. </select></td>
  36. </tr>
  37. <tr>
  38. <td>Titel</td>
  39. <td><input type="text" name="titel"></td>
  40. </tr>
  41. <tr>
  42. <td>Omschrijving</td>
  43. <td><textarea name="omschrijving" cols="50" rows="6" id="omschrijving"></textarea></td>
  44. </tr>
  45. <tr>
  46. <td>Prijs:</td>
  47. <td><input type="text" name="prijs"></td>
  48. </tr>
  49. <tr>
  50. <td>Foto</td>
  51. <td><input type="file" name="foto"></td>
  52. </tr>
  53. <tr>
  54. <td>&nbsp;</td>
  55. <td><input type="submit" name="submit" value="Toevoegen"></td>
  56. </tr>
  57. </table></td>
  58. </tr>
  59. </table></form>
  60. <?
  61.  
  62. if ($_POST ['submit'])
  63. {
  64.  
  65.  
  66.  
  67. $artikel= $_POST['artikel'];
  68. $omschrijving= $_POST['omschrijving'];
  69.  
  70. }
  71.  
  72. if($artikel== "kies") $error="Je moet het artikel selecteren";
  73. elseif($omschrijving== "") $error="Je moet de omschrijving invullen!";
  74.  
  75. if ($error== "")
  76. {
  77. //foto uploaden
  78.  
  79. $maxgrootte = 250; //grootte in kb's
  80.  
  81. $uploadmap ="../uploads/";
  82. $newmaxgrootte = $maxgrootte*1024;
  83. if(is_uploaded_file($foto)) { // is het bestand eengeüpload bestand?
  84.  
  85. $bestand_name = $_FILES['foto']['name']; //naamvan het geuploade bestand
  86. $bestand_type = $_FILES['foto']['type'];
  87.  
  88. //MIME-header van het geuploade bestand (bijvoorbeeldimage/pjpeg)
  89. $bestand_size = $_FILES['foto']['size'];
  90.  
  91. //grootte in bytes van het geuploade bestand
  92.  
  93. if ($bestand_size > $newmaxgrootte){
  94. $tegroot = round($bestand_size/1024);
  95.  
  96. echo "Het bestand is groter dan ".$maxgrootte."kb
  97.  
  98. (namelijk ".$tegroot."kb), wat niet toegstaan is.<br>";
  99. }
  100.  
  101. if (file_exists($uploadmap.$bestand_name)){
  102.  
  103. echo "Het bestand ".$bestand_name." bestaat al!<br>Hernoem het bestand op je harde schijf en probeer dan nog eens te uploaden.<br>";
  104.  
  105.  
  106. }
  107.  
  108. move_uploaded_file($foto,$uploadmap.$bestand_name);
  109.  
  110. $nwbestandgrootte = round($bestand_size/1024);
  111.  
  112. echo "Bestand ".$bestand_name." van het type ".$bestand_type." en ".$nwbestandgrootte."KB is met succes ge-upload!<br>";
  113. $old_umask = umask(0);
  114. chmod($uploadmap.$bestand_name, 0755);
  115.  
  116. }
  117.  
  118. else {
  119.  
  120. echo "Er is geen foto upgeload.<br>";
  121.  
  122. }
  123.  
  124. //einde foto uploaden
  125.  
  126. $query = "INSERT INTO babyshop (artikel,titel,omschrijving,prijs,foto) VALUES ('$artikel','$titel','$omschrijving','$prijs','$bestand_name')";
  127. mysql_query($query) or die (mysql_error());
  128. }
  129. ?>
  130. </div>
  131. </body>
  132. </html>
Offline blindact - 31/05/2005 21:44
Avatar van blindact Nieuw lid Dank u wel ,
nu marcheert het probleemloos.
Hoe komt het eigenlijk dat dit script op andere hosting van me werkt zonder die chmod erop?
Offline Ontani - 31/05/2005 21:49
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
als het op localhost is dan kan je zonder chmod werken
Offline xSc - 01/06/2005 10:21
Avatar van xSc Onbekend Je doet, zo denk ik, iets fout. Een jpg hoef je niet te chmodden.

Laat met PHP (mkdir()) een directory maken.

Chmod (chmod()) de dir naar bijv. 0700.

Je hoeft de rechten dus nooit te wijzigen. Stel dat je via HTTP een bestand uploadt naar die map, dan is de gebruiker PHP.

Wanneer je geen read/write rechten hebt, houdt in dat de eigenaar van het bestand (de user, die het geupload heeft) anders is dan degene die het plaatje leest / overschrijft.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.233s