×

سيتي بقت فودلارا

سيتم نقل محتوي موقع سيتي الي موقعنا الجديد فودلارا


مميزات جديدة في الدورات وتشغيل الدورات
لو مشترك معانا بموقعنا سيتي هتقدر تدخل فودلارا بحسابك القديم في موقع فودلارا مجانا
و خلال شهر نوفمبر وديسمبر فلاش سيل وتخفيضات من 30 وحتي 50 بالمائة علي جميع الدورات
اضغط هنا .. 👇👇
www.vodlara.com
حفظ ملف علي الكمبيوتر save file in asp.net

حفظ ملف علي الكمبيوتر save file in asp.net

حفظ ملف علي الكمبيوتر save file in asp.net

 

بعد ان قمت برفع الملفات الي السيرفر بشكل جيد والان تريد ان يضغط العميل علي اي ملف يحفظه علي الكمبيوتر الخاص بيه

حفظ ملف علي الكمبيوتر save file in asp.net

سوف نصنع 2 فانكشن ضعهم كما هم ولا تعدل بهم شئ ..ثم اخير سوف نضع كود ثالث ينفذ ماسبق وسوف نمرر له بارمتر

1- فانكشن اولي

 

private void fileDownload(string fileName, string fileUrl)
{
Page.Response.Clear();
bool success = ResponseFile(Page.Request, Page.Response, fileName, fileUrl, 1024000);
if (!success)
Response.Write("Downloading Error!");
Page.Response.End();

}

2- فانكشن ثانية

public static bool ResponseFile(HttpRequest _Request, HttpResponse _Response, string _fileName, string _fullPath, long _speed)
{
try
{
FileStream myFile = new FileStream(_fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
BinaryReader br = new BinaryReader(myFile);
try
{
_Response.AddHeader("Accept-Ranges", "bytes");
_Response.Buffer = false;
long fileLength = myFile.Length;
long startBytes = 0;

int pack = 10240; //10K bytes
int sleep = (int)Math.Floor((double)(1000 * pack / _speed)) + 1;
if (_Request.Headers["Range"] != null)
{
_Response.StatusCode = 206;
string[] range = _Request.Headers["Range"].Split(new char[] { ''='', ''-'' });
startBytes = Convert.ToInt64(range[1]);
}
_Response.AddHeader("Content-Length", (fileLength - startBytes).ToString());
if (startBytes != 0)
{
_Response.AddHeader("Content-Range", string.Format(" bytes {0}-{1}/{2}", startBytes, fileLength - 1, fileLength));
}
_Response.AddHeader("Connection", "Keep-Alive");
_Response.ContentType = "application/octet-stream";
_Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(_fileName, System.Text.Encoding.UTF8));

br.BaseStream.Seek(startBytes, SeekOrigin.Begin);
int maxCount = (int)Math.Floor((double)((fileLength - startBytes) / pack)) + 1;

for (int i = 0; i < maxCount; i++)
{
if (_Response.IsClientConnected)
{
_Response.BinaryWrite(br.ReadBytes(pack));
Thread.Sleep(sleep);
}
else
{
i = maxCount;
}
}
}
catch
{
return false;
}
finally
{
br.Close();
myFile.Close();
}
}
catch
{
return false;
}
return true;
}

 

3- فانكشن نضع بها متغيرات مرسلة من صفحة اخري


وفي ال page load
استدعي فنكشن

 
fileDownload(filename, Server.MapPath("/upload/" + filename));

upload هذا فولدر تخزن فيه الملفات التي ترفعها
file name هو اسم الملف .. وذلك بعد ان ترسل اسمه للصفحة

 

 

بواسطة
مصر
سيتي ستار لتكنولوجيا المعلومات
سيتي ستار لتكنولوجيا المعلومات

عودة لمقالات الموقع