PDA

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



H:Shojaei
دوشنبه 16 تیر 1393, 13:18 عصر
با سلام...
من میخوام وقتی کاربر رو یه لینک که به یه فایل اشاره داره نوع فایل هم هرچی باشه (فرمت های معمول) فایل مستقیم دانلود بشه چکار کنم؟؟
ممنون

vahidqara
دوشنبه 16 تیر 1393, 14:11 عصر
سلام.
اینجا رو نگاه کن شاید به کارت اومد.

http://my-wd-local.wikidot.com/othertip:direct-file-download-using-php

H:Shojaei
دوشنبه 16 تیر 1393, 14:46 عصر
ممنون عالی بود خوب اینجا به صورت پویا داره چک میشه و مثلا به نسبت پسوندی که فایل مورد نظر داره هدرش مقدار دهی میشه خوب این که تو حالت عادی درسته.
ولی سوال من این بود که مثلا هدری، تابعی چیزی نیست که مستقیم صرف نظر از نوع فایل، فایل رو دانلود کنه و این همه درد سر نخواد پشتش باشه؟؟

marys_farahani
دوشنبه 16 تیر 1393, 15:25 عصر
فایل لینک دانلود index.php



<html>
<head>
<title>.:. دانلود .:.</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#F0F0CC">
<center style="padding-top:40px;">
<a href="download.php?filename=result">دانلود فایل</a>
</center>
</body>
</html>



فایل download.php



<?php
if(isset($_GET['filename']) && !empty($_GET['filename']))
{
$song_file = 'files/'.$_GET['filename'].'.mp3';
if( file_exists( $song_file ) )
{
header( "Content-Disposition: attachment; filename={$song_file}" );
header( 'Content-Type: application/mp3' );
header( 'Content-Transfer-Encoding: binary' );
readfile( $song_file );
exit;
}
}

?>

H:Shojaei
دوشنبه 16 تیر 1393, 22:19 عصر
ممنون این کد مربوط به یه دانلود سادس منظور من رو متوجه نشدید هرچند سوالم ایهام داشت چون خیلی دنبالش گشتم همچین چیزی فک کنم وجود نداره...

Veteran
دوشنبه 16 تیر 1393, 23:03 عصر
فایل هارو در یک قالب مشخص قرار بده،مثلا هرچی که هست رو زیپ کن و هدر رو زیپ قرار بده
دیگه کاری با پسوند فایل اصلی نداشته باش،تو با زیپ کار کن

H:Shojaei
دوشنبه 16 تیر 1393, 23:18 عصر
ممنون سبحان جان ولی مسئله اینه که هر بار میخوام یه فایل دانلود بشه ...

H:Shojaei
دوشنبه 16 تیر 1393, 23:19 عصر
ممنون سبحان جان آهان همینه مرسییییییی ;)

Unique
دوشنبه 16 تیر 1393, 23:49 عصر
کافیه Content-Type را برابر با application/octet-stream قرار بدین و اونوقت برای مرورگر مهم نیست پسوند چیه و میره برای دانلود.
در مورد zip هم اگه حجم فایل زیاد باشه ارزش نداره یکبار کلش را بخونیم و zip کنیم ، به طور کلی zip کردن بار اضافی میگذاره روی سرور.


header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file_name).'"');

Veteran
سه شنبه 17 تیر 1393, 00:03 صبح
بله جناب Unique درست میفرمایین.
اما خب بنده از این مورد اطلاع نداشتم،واسه همین یکم خلاقیت به خرج و پیشنهاد بالا رو دادم.

H:Shojaei
سه شنبه 17 تیر 1393, 00:53 صبح
Unique عزیز ممنون دقیقا دقیقا دیگه همین رو میخواستم خیلی مرسییی....