الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية عمل تحميل لملف في القاعدة

بدأه man in dark في 24 يناير 2009 · 7 رد · 802 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخواني كيف اقدر اسوي رابط تحميل بيحث ان لدي ملفات مخزنة في قاعدة البيانات

اريد عمل كود " تحميل الملف" عند الضغط عليه يقوم بتحميل الملف

الكود

   <?php
   $host="localhost"; // Host name
   $username="root"; // Mysql username
   $password=""; // Mysql password
   $db_name="down"; // Database name
   $tbl_name="test"; // Table name

   // Connect to server and select database.
   mysql_connect("$host", "$username", "$password")or die("cannot connect");
   mysql_select_db("$db_name")or die("cannot select DB");

   $sql="SELECT * FROM $tbl_name";
   $result=mysql_query($sql);
$limit=3;
?>
	   <h2 class="download"><strong>download</strong></h2>
   <div align="center">



   <table class="sample">
   <tr>
   <td>down</td>
   <td>size</td>
   <td>year</td>
   <td>number</td>
   <td>tit</td>

   </tr>
   <?php
   $i=0;
   while($rows=mysql_fetch_array($result)){
   $i=$i+1;
   ?>
   <tr>

   <td>									  </td>

   <td><? echo round($rows['size']/1024); ?>M</td>

   <td><? echo $rows['year']; ?></td>

   <td><? echo $rows['number']; ?></td>

   <td><? echo $i; ?>
   </td>
   </tr>
   <?php
   }
   ?>
   </table>

   </div>
   </td>
   </tr>
   </table>
   </div>

   <?php
   mysql_close();
   ?>

صورة من قاعدة البيانات في المرفقات

</div>

post-131439-1232776263_thumb.jpg

تم تعديل هذه المشاركة بواسطة man in dark في 24 يناير 2009 في 08:54

#2

السلام عليكم ..

الفكره بعمليه التحكم بمحتوى الـ HTTP من خلال داله الـ Header .

لعمل ذلك , نقوم بعمل سكربت بسيط ونسميه مثلاً down.php , حيث ان هذا السكربت , سيقوم بإستلام الـ ID للملف المطلوب

تحميله وهو يقوم بالباقي . كود السكربت هو :

<?php
// ضع هنا كود الاتصال بقاعدة البيانات

$id=$_GET['id'];
$sql = "SELECT * FROM filesdb WHERE id=$id";

$result = @mysql_query($sql);

$data = @mysql_result($result, 0, "down"); 
$name = @mysql_result($result, 0, "f_name");
$size = @mysql_result($result, 0, "size");
$type = @mysql_result($result, 0, "type");

header("Content-type: $type");
header("Content-length: $size");
header("Content-Disposition: attachment; filename=$name");
header("Content-Description: PHP Generated Data");
echo $data;
}

الفكره بالكود السابق هي بإستخدام داله header لإخبار المتصفح بإنه بصدد تحميل ملف .

لإستخدام السكربت السابق , قم بعمل تعديل في الكود الرئيسي للعرض لديك , واضف داخل حلقة الـ mysql_fetch_array :

السطر التالي :

<?php echo '<a href="download.php?id='.$rows["number"].' ">'.$rows["f_name"]>.'</a>'

وذلك السطر هو المسئول عن عرض الروابط ..

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

------------------------------------------------------------------------------------------------

gazabigBanner.jpg

------------------------------------------------------------------------------------------------

#3

اخي لو ممكن التعديل على الكود

بحيث ان الحقل down هو الذي يوجد به الملف المراد تحميلة

#4

اخي لقد وضعت الكود في السكربت السابق بهذا الشكل

<td><a href="down.php?id=<? echo $rows['id']; ?>">download the files</a></td>

وهذه هي صفحة down.php

<?php
// Connect database.
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="down"; // Database name
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$id=$_GET['id'];

$sql="SELECT * FROM test WHERE id=$id";
$result = @mysql_query($sql);

$data = @mysql_result($result, 0, "down"); 
$name = @mysql_result($result, 0, "number");
$size = @mysql_result($result, 0, "size");
$type = @mysql_result($result, 0, "type");

header("Content-type: $type");
header("Content-length: $size");
header("Content-Disposition: attachment; filename=$name");
header("Content-Description: PHP Generated Data");
echo $data;

?>

ولكن لم يعمل معي يقوم بتحميل ملف بدون صيغة و عند فتحة ببرنامج البوربيونت لا يعمل

علما بان الملف المرفوع هو ملف بوربيونت

#5

هذا لانك لايوجد لديك حقل بإسم الملف كاملاً في القاعدة ..

حاول بإن تضيف حقل جديد في الجدول بإسم f_name بحيث يحتوى على اسماء الملفات .

وايضاً عدل في سكربت الـ down بحيث تعدل السطر رقم 16 الى :

$name = @mysql_result($result, 0, "f_name");

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

------------------------------------------------------------------------------------------------

gazabigBanner.jpg

------------------------------------------------------------------------------------------------

#6

اخي الان يحمل الملف بس الملف لا يعمل مع انه يحمل بوربويت و لكن عند فتحة لا يعمل

#7

حاول ان تحمل ملفات بسيطه وصغيره مثل النصيه ..

وتأكد ان ملف الـ PP نفسه ليس مضروب من الاساس ..

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

------------------------------------------------------------------------------------------------

gazabigBanner.jpg

------------------------------------------------------------------------------------------------

#8

الملفات النصية تتحمل بدون اي مشاكل و لكن ملفات مثل الوورد و pdf لا تعمل عند تحميلها

مواضيع مشابهة