2011-06-25 21 views
0

在照片畫廊工作時,是否存在將照片存儲在網絡上的「標準」方式? 將照片存儲在mysql數據庫中是不好的做法嗎?我應該將照片存儲在一個文件夾中,並將鏈接存儲在數據庫中?網站照相館

談論存儲照片時,要在網站上使用什麼是「好習慣」?時間

回答

1

您可以將使用不同的BLOB數據類型的數據庫中的照片。如果照片數量過多或超大,我的數據庫開始受到性能影響,並且數量會急劇增加。實際上,如果你有100張10Mb的照片,那就是1000Mb或者數據庫將會增長的大小。備份將永遠執行,並且如果包含圖像的表出於某種原因而損壞,則會導致比您需要處理的更多頭痛。

我作爲imoda建議的建議是將它們存儲在硬盤上,並鏈接到他們在這裏您可以容納所有的元數據和文件的位置的鏈接的數據庫。最佳做法是將照片的文件名存儲在數據庫中,並將文件重命名爲使用主鍵的值作爲文件名。例如,第5行與照片「x」相關聯,其中x是文件名,將其存儲在硬盤上驅動器並將照片重命名爲文件名5,然後當您訪問它以獲取下載等內容時,將從數據庫中的第5行提取實際文件名,並在下載它之前對其進行重命名。如果碰巧用相同的文件名上傳兩個或多個文件,這將防止意外覆蓋文件。

+0

那麼,他們不是爲了下載,但我明白了。 我只是想知道,什麼是「最佳實踐」,因爲我是新來的照片畫廊:) 謝謝您的回答 – hogni89

+0

您的歡迎。今天有一個關於是否應該使用BLOBS的巨大爭論,雙方都有強烈的爭論,但必須在確定時加以考慮。我沒有提到的一件事是做檢查,以確保文件不會從文件服務器上丟失,也不會從數據庫中刪除它們的記錄。不應該發生,但它可以。可能會建議設置一個自動化任務,以便經常檢查以確保文檔仍然存在,並在不存在的情況下采取措施(明顯是親BLOB方面會使用的論點)。 – Scott

1

99%,你不希望存儲在MySQL數據庫中的照片。如果不正確地完成,它的資源密集程度令人難以置信。將照片存儲在網站上的目錄中,並將其路徑存儲在數據庫中。

1

我建議使用Flickr的添加/刪除等重新安排你的圖片。使用Flickr的優點是您不必編寫任何複雜的代碼或託管圖片。您可以使用PHP和Flickr API使用您的配置文件ID檢索圖片。 1.與Flickr 2.下載phpFlickr創建一個應用程序,並把它放在你的服務器 https://code.google.com/p/phpflickr/downloads/list 根這個PHP代碼添加到您的gallery.php文件

下面是PHP畫廊與分頁

代碼
<div class="portfolio-grid"> 



    <?php 

     $key = "92d657c8dc79a29108d846a5fd121a29"; //your API key 
     $nsid = "[email protected]";   //your NSID 

     // get page number from the url - if there isn't one - we're on page 1 
     $page = isset($_GET['page']) ? $_GET['page'] : 1; 

     // inclue the core file 
     require_once('phpFlickr/phpFlickr.php'); 
     // Fire up the main phpFlickr class 
     $f = new phpFlickr($key); 
     $f->enableCache("fs", "cache"); 

     $photos = $f->people_getPublicPhotos($nsid, NULL, NULL, 20, $page); 
     $pages = $photos[photos][pages]; // returns total number of pages 
     $total = $photos[photos][total]; // returns how many photos there are in total 
    ?> 


    <!--END script Flick photos --> 
    <div> 
     <?php 
      echo '<div id="container">'; 
      // loop through each photo 
      foreach ($photos['photos']['photo'] as $photo) { 

      // print out a link to the photo page, attaching the id of the photo 
       echo '<div class="item" style="float:left;"> 
         <a class="swipebox-isotope" href="' . $f->buildPhotoURL($photo, 'Large') . '" title="A.S.A.C - The African Student&apos;s Association of Concordia"><img class="gallery-img" src="' . $f->buildPhotoURL($photo, 'medium') . '" alt="' . $photo['title'] . '" title="' . $photo['title'] . '"/></a> 
         </div>'; 

      // end loop 
      } 
      echo '</div>'; 
     ?> 

    </div> 

     </div> 
    <h2 id="nav"> 
    <?php 
     // Some simple paging code to add Prev/Next to scroll through the thumbnails 
     $back = $page - 1; 
     $next = $page + 1; 
     // if it's not the first page 
     if($page > 1) { 
     echo "<a href='?page=$back'>&laquo; <strong>Prev</strong></a>"; 
     } 




     // if not last page 
     if($page != $pages) { 
     echo "<a style='float:right' href='?page=$next'><strong>Next</strong> &raquo;</a>";} 
     // a quick bit of info about where we are in the gallery 
     echo"<h3 style='text-align:center;'>Page $page of $pages <br/>$total photos</h3>"; 

    ?> 
</h2>