2012-07-24 5 views
0

EDIT: Problème résolu: Stupide petit twit que je suis, j'avais négligé de donner un nom au fichier. $ testSiteDir était un chemin sans nom de fichier. Comment un fichier peut-il être enregistré sans nom! D'Oh! désolé;)créer des images miniatures avec des autorisations d'écriture php


Je sais qu'il ya beaucoup de questions semblables autour et je l'ai lu à travers eux, mais depuis que je suis en quelque sorte dû construire un hybride de tous les tutoriels et les articles que j'ai quelques-uns code que j'espérais travailler mais ne le fait pas.

A un moment donné, j'ai réussi à créer des copies des images dans le dossier que je voulais en utilisant la fonction copy() pour le déplacer, ce qui a fonctionné. Mais depuis que je veux redimensionner je dois utiliser GD (pour autant que je peux dire)

voici mon code:

if (is_dir($BooksDir)) { 
if ($dh = opendir($BooksDir)) { 
    while (($folder = readdir($dh)) !== false) { 
     $count++; 
     $exclude = array('.','..','etc.'); 
     if (!in_array($folder, $exclude)){ 
      echo '<div ' . ($count&1 ? 'class="oddrow"' : 'class="evenrow"') . '>'; 
      echo $folder . "<br/>" . $count; 
      $subDir = $BooksDir . '/' . $folder; 
      $filesnfolders = scandir($subDir); 
      foreach ($filesnfolders as $file) { 
       $ext = pathinfo($file, PATHINFO_EXTENSION); 
       if ($ext == 'jpg' || $ext == 'jpeg' || $ext == 'png' || $ext == 'gif') { 
        if ($ext == 'jpg' || $ext == 'jpeg') { 
         $origimg = imagecreatefromjpeg($subDir. '/' . $file); 
         $thHeight = 100; 
         $thWidth = 100; 
         $mainWidth = imagesx($origimg); 
         $mainHeight = imagesy($origimg); 
         $myThumbnail = imagecreatetruecolor($thWidth, $thHeight); 
         imagecopyresampled($myThumbnail, $origimg, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $mainWidth, $mainHeight); 
         imagejpeg($myThumbnail, $testSiteDir); 
        } 
       } 
      } 
      echo '</div>'; 
     } 
    } 
    closedir($dh); 
} 

}

Quand j'essayer d'utiliser ce qui précède je reçois l'erreur que je n'ai pas la permission d'écrire dans ce dossier: Impossible d'ouvrir 'C:/xampp/htdocs/test' pour écrire: Permission refusée dans ...

J'ai trois manuels et je lis beaucoup d'articles sur les images et php, je n'ai vu nulle part où il me dit quoi faire

+0

Est-ce que 'C:/xampp/htdocs/test' est en lecture seule? – Palladium

+0

J'ai essayé de le changer avec rightclick-> properties-> désélectionner readonly mais cela n'a pas fait la différence, j'ai aussi essayé de changer le propriétaire du dossier mais cela n'a pas aidé non plus –

Répondre

0

La définition d'autorisations d'écriture sur Windows peut s'avérer moins qu'évidente.

Essayez ces instructions http://drupal.org/node/202491 et voyez comment vous vous y prenez.

Si vous utilisez Xampp comme une installation PHP, il semble généralement propager les autorisations d'écriture dans toute la structure de répertoires de htdocs. Très utile. Je ne sais pas pourquoi il ne l'a pas fait pour vous.

EDIT: juste remarqué que la page Drupal se rapporte à IIS. Peut-être que ce sera mieux ... Apache on windows server can't write to file

+0

Hey là, lisez ces articles mais je Suis pas le plus sage, Merci de souligner qu'il est probablement à faire avec Windows, je suis sur Windows 7 - juste besoin de comprendre ce qui ne va pas! Pourquoi tout est si dur! –

+0

@crazysarah Ce n'est pas si dur, fou. Vous pouvez vous prouver que c'est possible en choisissant "Tout le monde" et en permettant à cet utilisateur d'écrire dans le répertoire. Ce n'est pas une bonne pratique cependant. – Pete

+0

Vous l'avez corrigé (voir modifier ci-dessus), merci pour l'aide :) –

Questions connexes