网站图片库

时间:2011-06-25 00:16:16

标签: mysql image storage gallery photo

在使用照片库时,是否有“标准”方式在网络上存储照片? 将照片存储在mysql数据库中是不好的做法?我应该将照片存储在文件夹中,并将链接存储在数据库中吗?

在谈论存储照片,在网站上使用时,什么是“良好做法”?

3 个答案:

答案 0 :(得分:1)

99%的时间您不想将照片存储在MySQL数据库中。如果做得不当,这是非常耗费资源的。将您的照片存储在您网站上的目录中,并将其存储在数据库中。

答案 1 :(得分:1)

您可以使用不同的BLOB数据类型将照片存储在数据库中。如果照片数量过多或超大,我的数据库开始受到性能影响并且会大幅增加。从本质上讲,如果你有100张10Mb的照片,那就是1,000Mb或大约Gb的大小,数据库将会增长。备份将永远执行,如果包含图像的表因任何原因而破坏,它将导致比您需要处理的更多头痛。

我的建议是imoda建议将它们存储在硬盘上,并在数据库中链接到它们,您将在其中保存所有元数据和指向文件位置的链接。最佳做法是将照片的文件名存储在数据库中,并重命名文件以使用主键的值作为文件名。例如,第5行关联到照片“x”,其中x是文件名,将其存储在硬盘上将照片驱动并重命名为文件名5,然后当你去下载时访问它时,你将从数据库中的第5行中提取实际文件名并在下载之前将其重命名。如果你碰巧上传了两个或多个具有相同文件名的文件,那就不会意外地覆盖文件。

答案 2 :(得分: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 = "108400461@N02";            //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>
相关问题