Merhaba;
sunucuda image dosyalarının yüklendiği bir klasör var.
şu kod ile klasör içeriğini listeliyor ve resimlere link vererek yüklenen resimleri
ayrı bir sayfada listeleyebiliyorum.
<?php
$dir = opendir("image");
while (($dosya = readdir($dir)) !== false)
if(! is_dir($dosya)){
echo "<a href=\"http://www.domain.com/image/".$dosya."\">".$dosya."</a><br >";
}
closedir($dir);
?>
ancak listeleme sayfasını açınca klasörün içindeki tüm image dosyalarını yüklüyor ve klasör boyutu yani içindeki image sayısı arttıkça sayfanın yüklenmesi zaman alıyor.
bir sayfada 5 ya da 10 resim göstermek ve diğer resimler için ileri geri linkleri kullanarak listeleme yapmak istiyorum. yukarıdaki kodlar dikkate alındığında bu mümkün mü? mümkünse nasıl yapabilirim?
yardımlarınızı bekliyorum
saygılar
Klasör içeriğini listeleme hakkında
5
●3.689
- 23-01-2013, 14:41:06
- 23-01-2013, 17:38:26hocam istediğinizi php ile yapmanız zor ve sıkıcı. ben daha önce böyle bir şey yapmıştım. kodlarını paylaşayım ve kendinize göre uyarlayım;
ilk olarak listelemenizi;
<ul id="dosya_sayfalama"> <li>dosya adı</li> <li>dosya adı</li> <li>dosya adı</li> <li>dosya adı</li> </ul> div id="dosya_sayfalar"></div>
şekline çevirin. daha sonra sayfanın bir yerine yada sayfaya dahil olan bir js nin içine;
$(document).ready(function(e) { var toplamLi = $("#dosya_sayfalama > li").length; //kaç tane li var var veriSayi = 5; //her sayfada kaç tane gösterilecek var sayfaSayi = Math.ceil(toplamLi / veriSayi); //sayfa sayısını bulduk //ilk sayfadan sonrakileri gizliyoruz $("#dosya_sayfalama li:gt("+ (veriSayi-1) +")").hide(); //sayfa linklerini yazdırıyoruz for(var i=1; i<=sayfaSayi; i++){ $("#dosya_sayfalar").append('<a href="javascript:void(0);">' + i + '</a>'); } // ilk sayfaya aktif classını ekledik $("#dosya_sayfalar a:first").addClass("aktif"); $("#dosya_sayfalar a").live("click", function(){ $("#dosya_sayfalar a").removeClass("aktif"); $(this).addClass("aktif"); var indis = $(this).index() + 1; var gt = veriSayi * indis; $("#dosya_sayfalama > li").hide(); for(var s = gt-veriSayi; s < gt; s++){ $("#dosya_sayfalama li:eq(" + s+ ")").show(); } }); });kodlarını eklemen lazım. ve sitil dosyana
#dosya_sayfalama { display:block; width: 95%; height: auto; list-style:none; margin-top: 30px; } #dosya_sayfalama > li { display:block; padding:0; margin:0; margin-bottom: 20px; } #dosya_sayfalar { display:block; width: 100%; height: 30px; line-height: 30px; margin-top: 20px; margin-bottom: 20px; } #dosya_sayfalar a { color: #fff; background-color: #333; padding: 3px 7px; margin-right: 6px; text-decoration: none; } #dosya_sayfalar a.aktif { background-color:#999999;}kodlarını eklersen istediğin olmuş olur. - 24-01-2013, 14:51:43öncelikle ilgilnize teşekkürler;
<ul id="dosya_sayfalama">
<li>dosya adı</li>
<li>dosya adı</li>
<li>dosya adı</li>
<li>dosya adı</li>
</ul>
div id="dosya_sayfalar"></div>
bu bölümde
<li>dosya adı</li>
şeklinde tüm dosya adlarını el ile mi girmem gerek. zira klasördeki dosyalar sabit değil
kullanıcılar dosya yukluyorlar.
selamlar - 24-01-2013, 15:39:23
$dir = opendir("image"); $sayi = 0; while (($dosya = readdir($dir)) !== false) if(! is_dir($dosya)){ $resimler[$sayi] = $dosya; $sayi++ } closedir($dir); $sayfa = ceil($sayi / 10) if(isset($_GET['sayfa']) && $_GET['sayfa'] > 0){ $basla= 10 * intval($_GET['sayfa'] - 1); }else{ $basla = 0; } for($i=0;$i>$basla && $i < $basla + 11; $i++){ if(is_file('image/'.$resimler[$i])){ echo "<a href=\"http://www.domain.com/image/".$resimler[$i]."\">".$resimler[$i]."</a><br >"; } } echo '<br><br><br>Saylama:<br>'; for($i=0; $i< count($sayfa);$i++ ){ echo ' <a href="adres.php?sayfa='.$i.'">'.$i.'</a> |'; }Bu işi böyle yapmak mantıklı değil. Kodu çabuk yazdım, yazım hatası yaptım mı diye kontrol et. Ayrıca sayfalama yapmak için veritabanı kullanmak makuldur, bu readdir ile satır satır dosya çekemezsin ayrıca sayfalama yapabilmek için toplam dosya sayısını bilmek zorundasın. o yüzden tüm klasördeki dosyaları alırsın, mantıklı iş değil ileride dosya sayısı arttıkça sıkıntı çıkarır. - 24-01-2013, 16:37:51veritabanı kullanmıyorum evet,
peki formdan dosyaları klasöre gonderdiğim bir sayfa var
dosya adını ve yolunu veritabanına aktarmak için ne yapayım
db yapısı nasıl olmalı sizce. şu an uygulama db siz çalışıyor ama
sanırım db ye geçmem gerekecek
önerileriniz neleridir?
saygılar
digiklan adlı üyeden alıntı: mesajı görüntüle - 24-01-2013, 20:12:03evet hocam malesef elle tek tek yazmanız gerekiyor

yahu olur mu öyle şey.
<ul id="dosya_sayfalama"> <?php $dir = opendir("image"); while (($dosya = readdir($dir)) !== false){ if(! is_dir($dosya)){ echo "<li><a href=\"http://www.domain.com/image/".$dosya."\">".$dosya."</a></li>"; } closedir($dir); } ?> </ul> <div id="dosya_sayfalar"></div>bu işini görür.
hissizadam adlı üyeden alıntı: mesajı görüntüle
