PDA

View Full Version : کد دانلود کرده یک فایل



omid6630
چهارشنبه 18 آبان 1390, 00:24 صبح
به نام خدا و سلام

یک جدول (table ) دارم که توش آدرس یک لینک رو که یک فایل صوتی و تصویری هست نمایش میده .

میخوام وقتی روی لینک کلیک شد ، دانلود بشه و اجرا نشه .

همین .

متشکرم .

moslem.hady
چهارشنبه 18 آبان 1390, 02:51 صبح
کار درست اینه که از این کد استفاده کنی:
تابع download:

public void DownloadFile(string filePath)
{
if (File.Exists(Server.MapPath(filePath)))
{
string strFileName = Path.GetFileName(filePath).Replace(" ", "%20");
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + strFileName);
Response.Clear();
Response.WriteFile(Server.MapPath(filePath));
Response.End();
}
}

و موقع فراخونی برای دانلود یه فایل:

string strFolder = "~/ّFileAdress";
string filePath = Path.Combine(strFolder, "FileName");
DownloadFile(filePath);

omid6630
چهارشنبه 18 آبان 1390, 23:12 عصر
تا اینجا فهمیدم - و متشکرم .

حالا اگه بخوام این کار رو برای یک لیستی از لینک های دانلود انجام بدم چکار باید انجام بدم .

موقع کلیک روی هر لینک از دیتابیس دانلود بشه .

اگه کدش رو بذارید ممنون میشم .

omid6630
چهارشنبه 18 آبان 1390, 23:46 عصر
توضیح بهتر :

تو یک گرید ویو ، به این صورت است :

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{

if (e.CommandName == "download")
{
int id = Convert.ToInt32(e.CommandArgument);
string strFolder = "~/data";
string filePath = Path.Combine(strFolder, "FileName");
DownloadFile(filePath,id);
}
}

حالا به این تفاسیر تابع downloadFile (filepath,id) به چه صورت میشود .؟

moslem.hady
پنج شنبه 19 آبان 1390, 01:08 صبح
حالا به این تفاسیر تابع downloadFile (filepath,id) به چه صورت میشود .؟
ینی چی "تابع به چه صورت میشه"؟!!! به همون صورت که نوشتم!!

omid6630
پنج شنبه 19 آبان 1390, 01:36 صبح
ینی چی "تابع به چه صورت میشه"؟!!! به همون صورت که نوشتم!!


الان با لینوکس کار میکنم - دکمه ی تشکرم رو نشون نمیده . ( متشکرم )

یکم تابع رو میخواستم بیشتر توضیح بدید .

مقدار id مربوط به لینکی که میخواد دانلود بشه رو کجا تعریف کردید . ؟

من مقدار id لینکی که کاربر میخواد دانلود کنه رو گرفتم . حالا برای اینکه بگم مثلا فیلد دانلود مربوط به این id رو دانلود کن باد چکار کنم ؟


در کل یکم توضیح بیشتری بدید .

متشکرم

moslem.hady
پنج شنبه 19 آبان 1390, 19:43 عصر
آها گرفتم!!! شما باید اسم فایل رو هم در دیتابیس ذخیره کنید. ینی مثلا newfolder.zip. خوب؟!
بعد توی دستور زیر:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{

if (e.CommandName == "download")
{
int id = Convert.ToInt32(e.CommandArgument);
string strFolder = "~/data";
string filename= با دستور سلکت از دیتابیس اون نام فایل رو بخونید;

string filePath = Path.Combine(strFolder, filename);
DownloadFile(filePath,id);
}
}

افتاد؟!!