صممت موقع خاص بمكتبة اكترونية لتحميل وتنزيل الكتب من والي جهاز المستخدم علما ان قاعدة بيانات تحتوي علي حقول التالية
id,name,conect type,date
اريد مساعدة كيف يتم عرض حجم الكتاب قبل التحميل باستخدلم لغة سي شارب
هذه دالة تقرأ حجم الملف (طبعا قبل تنزيل الملف)
PHP كود :
public long GetFileSize(string url) {
using (System.Net.WebClient wc = new System.Net.WebClient()) {
using (System.IO.Stream s = wc.OpenRead(url)) {
return long.Parse(wc.ResponseHeaders["Content-Length"].ToString());
}
}
}
وهذه دالة تحول الرقم الطويل إلى الصيغة المتعارف عليها مثل Bytes وKB وMB وGB وTB
PHP كود :
public string FormatBytes(double length) {
double DoubleBytes = 0;
if (length >= 1099511627776L) { //TB
DoubleBytes = length / 1099511627776L;
return (DoubleBytes).ToString("#0.##") + " TB";
} else if (length >= 1073741824) { //GB
DoubleBytes = length / 1073741824;
return (DoubleBytes).ToString("#0.##") + " GB";
} else if (length >= 1048576) { //MB
DoubleBytes = length / 1048576;
return (DoubleBytes).ToString("#0.##") + " MB";
} else if (length >= 1024) { //KB
DoubleBytes = length / 1024;
return (DoubleBytes).ToString("#0.##") + " KB";
} else { // bytes
DoubleBytes = length;
return (DoubleBytes).ToString("#0.##") + " bytes";
}
}
وهذه طريقة استعمال الدالتين طبقتها على ملف كبير حجمه ( 3965825024Bytes ) يعني يساوي ( 3.97GB )
PHP كود :
string url = "https://download.microsoft.com/download/0/B/C/0BC321A4-013F-479C-84E6-4A2F90B11269/vs2015.com_enu.iso";
long length = GetFileSize(url);
MessageBox.Show(FormatBytes(length));
الدالتين ليست من عندي ولكن عدلت عليها
بارك الله فيك
لكن انا اعمل علي asp.net مش php
الكود الي مني #C وليس php.
وانت ما جبت سيرة asp في سؤالك.
انت طلبت تعرف حجم الملف قبل التحميل والكود هذه مهمته
الا اذا انت ما تدري في اي قسم تضع موضوعك فهذه مشكلتك.
عزيزي جوابك في اكواد الاخ محمد 911 الا اذا كنت تقصد قبل تحميل الملف الى الموقع الخاص بك فهذا يتم بالجافا سكربت ... اشرح التفاصيل جيدا حتى يتم مساعدتك افضل ..