2012-07-24 64 views
0

編輯:問題解決: 我是愚蠢的小笨蛋,我忽略了爲該文件命名。 $ testSiteDir是一個沒有文件名的路徑。沒有名字的情況下如何保存文件! D'哦! 對不起;)使用php創建縮略圖圖片 - 寫入權限


我知道有很多類似的問題,各地,我一直在通過他們讀,但因爲我已經有點必須建立所有的教程和文章的混合我有一些代碼,我希望工作,但沒有。

我在某一點做了管理創建的圖像副本到我想要使用copy()函數來移動它,工作的文件夾。但因爲我想調整它,我需要使用GD(據我可以告訴)

這裏是我的代碼:

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); 
} 

}

當我嘗試使用上面的我得到錯誤我沒有寫入該文件夾的權限:無法打開'C:/ xampp/htdocs/test'進行寫入:權限被拒絕...

我有三本課本,讀了一堆關於圖片和php的文章,我還沒有看到它告訴我該怎麼做

發生了什麼問題:)

+0

是'C:/ xampp/htdocs/test'只讀嗎? – Palladium 2012-07-24 15:52:20

+0

我試過用rightclick-> properties-> unselect readonly改變它,但這並沒有改變我的區別,我也試過改變文件夾的所有者,但是這並沒有幫助 – 2012-07-24 16:07:12

回答

0

在Windows上設置寫入權限可能不太明顯。

試試這些說明http://drupal.org/node/202491看看你是怎麼回事。

如果您使用Xampp作爲PHP安裝,它似乎通過htdocs的整個目錄結構傳播寫入權限。非常便利。不知道爲什麼它沒有爲你做。

編輯:只注意到Drupal頁面涉及IIS。也許這會更好... Apache on windows server can't write to file

+0

嘿,那裏,閱讀那些文章,但我'沒有比這更聰明的了,謝謝你指出這可能與Windows有關,我在Windows 7上 - 只需要弄清楚什麼是錯誤的!爲什麼一切都如此艱難! – 2012-07-24 16:07:55

+0

@crazysarah這並不難,瘋狂。你可以向自己證明,通過選擇「Everyone」並允許該用戶寫入目錄是可能的。但這不是一個好習慣。 – Pete 2012-07-24 16:14:33

+0

知道它已修復(請參閱上面的編輯),感謝您的幫助:) – 2012-07-24 16:17:58