Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

Asp ile dosya boyutu !!!

jackal

0
Onaylı Üye
Üye
Katılım
2 Ocak 2006
Mesajlar
1,899
Açılan Konu
177
Tepki puanı
1
server a kullanıcılar dosya yukluyo çeşitli boyutlarda,

yuklemış oldukları boyutları ben toplam olarak nasıl gosterebılırım sıtede,

toplam xx mb dosya vardır,

eğer kullanıcıalr dosyaların boyutunu yazsaydı labılrıdı ama hepsı boş bırakıyor dırekt serverda yuklenen klasorun toplam boyutunu alma gıbı bır işlem yapmam lazım uzun sure araştırdım ancak bir sonc elde edeemdım bılen varsa yardım ederse sevınırım
 

Developer

0
Onaylı Üye
Üye
Katılım
21 Şubat 2006
Mesajlar
2,123
Açılan Konu
73
Tepki puanı
3
Konum
Istanbul
<%
' Veritabanına bağlanalım
set kon=server.createobject("addob.connection")
conn.open= "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ= " & server.mappath ("db/data.mdb")
set rs=server.createobject("adodb.recordset")
sql = "select * from tablo"
conn.open sq,kon,3,3
%>

'Sonra Recordcount yöntemi ile kayıt sayısını kolayca alıyoruz.
Veritabanındaki tabloda toplam <% rs.recordcount%>kayıt var metodu ile alabilirsin.
 

Developer

0
Onaylı Üye
Üye
Katılım
21 Şubat 2006
Mesajlar
2,123
Açılan Konu
73
Tepki puanı
3
Konum
Istanbul
<'--2. Yöntem (SQL ile)>

<%
'-- Değişkenler tanımlandı.
Dim cnnDB, Rs, kayitsayisi, MySQL
'-- cnnDB isimli veritabanı bağlantı nesnesi oluşturuldu.
Set cnnDB=Server.CreateObject("ADODB.Connection" )
'-- ODBC'den MyDatabase isimli veritabanı açıldı.
cnnDB.Open "MyDatabase"
'-- SQL oluşturuldu.
mySQL="Select COUNT(*) FROM TblOrnek;"
'-- SQL bağlantı nesnesi üzerinde çalıştırılarak Rs isimli recordSet nesnesine aktarıldı.
Set Rs =cnnDB.Execute(mySQL)
'-- Rs'in 0. Alanı kayıt sayısını bize verdi.
kayitsayisi=Rs(0)
'-- Kayıt sayısı ekrana yazdırıldı.
Response.Write kayitsayisi
'-- RecordSet kapatıldı.
Rs.Close
'-- Bağlantı kapatıldı.
cnnDB.Close
'-- Bağlantı bellekten silindi.
Set cnnDB=Nothing
%>
 

jackal

0
Onaylı Üye
Üye
Katılım
2 Ocak 2006
Mesajlar
1,899
Açılan Konu
177
Tepki puanı
1
ancak yazdığın kayıt sayısını almak benım ıstedığım,
mesela serverda klasorde 100 dosya var, bu 100 dosyanın toplam kaç mb olduğu :)

ve bunu dırekt serverdan alması lazım çunku verıtabanında kaç kb oldukalrı yazmıyor
 

trextra

0
Onaylı Üye
Üye
Katılım
4 Mart 2005
Mesajlar
5,290
Açılan Konu
166
Tepki puanı
0
Konum
Kadıköy
<%

Set FSO = CreateObject("Scripting.FileSystemObject")

Set Klasor = FSO.GetFolder(Server.Mappath("/KLASORUN"))
Response.Write Klasor.Size
%>

Çıkan sonucu 1024'e bölersek sonucu KB cinsinden alırız.

<%
Set Klasor = FSO.GetFolder(Server.Mappath("/KLASORUN"))
Response.Write Klasor.Size/1024
%>

Burasıda KB oldu
 

jackal

0
Onaylı Üye
Üye
Katılım
2 Ocak 2006
Mesajlar
1,899
Açılan Konu
177
Tepki puanı
1
Teşekkru edermı sayende halletmışem buyulsun :D sağolun
 

jackal

0
Onaylı Üye
Üye
Katılım
2 Ocak 2006
Mesajlar
1,899
Açılan Konu
177
Tepki puanı
1
dediğin şekılde yaptım,
byte oalrak verıyı aldım dha sorna bu verıyı, 1 mb a karşılık gelen byte e cevırdım yanı 1024000 a ancak sonuc sanırım doğru değil, ve bundan zıyade neden bu kadar kusurlu vardu yuvarlama ımkanım yokmu bunu :)


Sitemizde 440228796 Byte a Karşılık 429.910933 MB Ödev Bulunmaktadır...
 

Yusuf

0
Onaylı Üye
Üye
Katılım
19 Aralık 2004
Mesajlar
158
Açılan Konu
25
Tepki puanı
0
Konum
İstanbul
round(Klasor.Size/1024,2)
 

trextra

0
Onaylı Üye
Üye
Katılım
4 Mart 2005
Mesajlar
5,290
Açılan Konu
166
Tepki puanı
0
Konum
Kadıköy
1024 ün katları şeklinde gider ölçüler. 1024x1024=1048576 ya böl. Bilgisayarındaki bir klasöre sağ tıkladığında da buna benzer bir sonuç alırsın. Ya da harddiskler. 2500 mb lık harddiski 2,5 gb diye satıyolar ama aslında 2,3 gb tır ;)
 

jackal

0
Onaylı Üye
Üye
Katılım
2 Ocak 2006
Mesajlar
1,899
Açılan Konu
177
Tepki puanı
1
pekı, 426 mb ı dırek gosterme ne oluyor yanı çok kusuratlı oluyr boyle :D
 

trextra

0
Onaylı Üye
Üye
Katılım
4 Mart 2005
Mesajlar
5,290
Açılan Konu
166
Tepki puanı
0
Konum
Kadıköy
Bu şekilde yapıp tam sayıya çevirebilirsin. Virgülden sonrasını atar. Ama mesela 6,99 nerdeyse 7 sayılır. Bunuda 6 şeklinde gösterir. Haberin olsun.

<%
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Klasor = FSO.GetFolder(Server.Mappath("/klasorun"))
Response.Write int(Klasor.Size/1024/1024)
%>
 

trextra

0
Onaylı Üye
Üye
Katılım
4 Mart 2005
Mesajlar
5,290
Açılan Konu
166
Tepki puanı
0
Konum
Kadıköy
Virgülden sonraki rakam farkı 0,5 den küçükse bir üst sayıya yuvarlama fonksiyonu yazdım. En azından 6,51 ya da 6,99 u 7 ye yuvarlayacak ;)

Kod:
<%
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Klasor = FSO.GetFolder(Server.Mappath("/klasorun"))

DosyaBoyutMB = Klasor.Size/1024/1024
intDosyaBoyutMB = int(DosyaBoyutMB)

if (intDosyaBoyutMB+1) - DosyaBoyutMB < 0.5 then
Response.Write  intDosyaBoyutMB + 1
Else
Response.Write intDosyaBoyutMB
End if

%>
 

Yusuf

0
Onaylı Üye
Üye
Katılım
19 Aralık 2004
Mesajlar
158
Açılan Konu
25
Tepki puanı
0
Konum
İstanbul
mithrandil' Alıntı:
pekı, 426 mb ı dırek gosterme ne oluyor yanı çok kusuratlı oluyr boyle :D

Herhangi bir matematiksel işlemden sonra virgül sonrasını "ROUND" fonksiyonu ile belirleyebilirsin.

round(Klasor.Size/1024000,0)

Burdaki "0", virgülden sonra basamak göstermemesi anlamına geliyor.
1,2,3.. diye tanımlayabilirsin.
 
Üst