• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

البحث في المنتدى

Showing results for tags 'file upload'.

  • البحث بالتاقات

    اكتب الكلمات المفتاحيه بينها علامه الفاصله
  • البحث بكاتب الموضوع

تم إيجاد 13 نتيجة

  1. السلام عليكم أكبر دورة عربية تعنى بطرفية cmd و الملفات الدفعية. الدورة تنقسم لجزئين الجزء الأول مخصص للطرفية التفاعلية و الجزء الثانى مخصص للغة البرمجة التى توفرها هذه الطرفية. الدورة هي موجهة للمبتدئين و للمحترفين على حد السواء فسيجد فيها المبتدئ دروس عملية مبسطة و سيجد المحترف تقنيات و مواضيع متقدمة ستمكنه من الغوص أكثر فى هذه اللغة. ملاحظة: هناك إشكال فى الصوت فى الحلقات الأولى الدورة
  2. Read and Write to file ( C++ , C , Java )     
  3. السلام عليكم و رحمة الله و بركاته  ،،،  قبل فتره قريبه فيه موضوع شد انتباهي وهو ملفات  Log  الخاصه بقواعد البيانات  و ما فائدتها  ، حيث تتميز بحجمها الكبيره و الذي يتضخم بشكل اكبر من قاعدة البيانات نفسها  ،، بالمختصر هو ملف يحوي على Actions الذي حدثت على قاعدة البيانات خلال فترة تشغيل النظام المرتبط على قاعدة البيانات  ،  طبعا غرضي من هذا الموضوع ليس لنقاش فكرة ملفات LOG او كيف تقليل حجمها  او كيفية اخذ نسخه احتياطية منها  و لكن  ما جذب انتباهي i, ! ، لو حذفت بالخطأ بيانات  او تم تعديلها بالخطأ او او او ! لأي سبب كان  هنا تأتي فائدة ملف Log  بحيث نسترجع البيانات المفقوده  او المعدله و من قام بتنفيذ الاجراء عليها  و لكن تبقى مشكله وهي ان البيانات التي تحاول استخراجها من اي Action  تكون  Hex  و منظمه بشكل معين  (و هي سبب وضعي للموضوع للنقاش و المساعده) ،  على العموم  فيه موضوع اعجبني على احدى المدونات و يكاد يكون الوحيد الذي استطاع استرجاع البيانات ،  و رابط الصفحتين هي :http://raresql.com/2011/10/22/how-to-rec...sql-sever/http://raresql.com/2012/02/01/how-to-recover-modified-records-from-sql-server-part-1/في الرابط الاول يتحدث بالتفصيل  عن الطريقة التي استخدمها  في فك تشفير  Hex   و لكن  لم استطع فهم ما يرمي اليه من بداية الخطوه رقم  (2)  ،  طبعا انا لا اتحدث عن  تنفيذ   Stored Procedure ، و لكن أستفسر عن الاسلوب الذي اتبعه في فك البيانات ،،  طبعا هو قال فيه تفاصيل بكتاب ، اي مرجع قد افاده بطريقة فك التشفير  ، و لقيته على الانترنت   و لكن كلام كثير و يبغى له قعده فحبيت اضع الموضوع هنا لعلى احد عنده فكره عن الموضوع هذا او يشاركني في عملية دراسته . هنا موضوع اخر على مدونه اخرى فيه شيء من التفصيل  http://sqlfascination.com/2010/02/05/how...og-part-2/
  4. السلام عليكم و رحمة الله وبركاته . هذا الدرس من سلسلة الدروس التالية لتعلم لغة php . رفع الملفات باستخدام لغة php . لا يكاد موقع يخلو من تمكين المُستخدم من رفع ملف من جهازه على الخادم كإرفاق ملف بأحد المنشورات أو رفع صورة شخصية ...الخ فسيكون موضوع هذا الدرس عن كيفية رفع الملفات الى الخادم باستخدام php بالإضافة الى تنسيق حقل رفع الملف وكيفية إظهار نسبة مئوية لتقدم رفع الملف ... نموذج HTML : في البداية عند إنشاء نموذج HTML يجب تحديد الطريقة post كالطريقة التي سيتم ارسال البيانات فيها , بالإضافة الى وضع ترميز النموذج "multipart/form-data" بدلا من الترميز الإفتراضي "application/x-www-form-urlencoded" كمثال على ذلك , نموذج HTML البسيط التالي : <form action="file_upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="file1"> <input type="submit"></form>لاحظ نوع الحقل type="file" في الوسم input . المصفوفة $_FILES : تُخزن هذه المصفوفة معلومات عن الملف أو الملفات التي تم رفعها الى الخادم . و بشكل عام هذه الصفوفة ثنائية البعد (تم التطرق الى المصفوفات متعددة الأبعاد في درس المصفوفات و الدوال) حيث يُعبر البعد الأول عن اسم حقل الملف المُحدد في حقل الملف في نموذج HTML (سيتم اعتماد file1 كأسم لحقل الملف في الأمثلة القادمة) . أما البُعد الثاني , فيوفر معلومات عن اسم الملف أو حجمه أو نوعه أو رسالة الخطأ في حال وجودها ... - القيمة $_FILES['file1']['name'] : يُحدد هذا المتغير اسم الملف الأصلي كما هو في جهاز المستخدم . - القيمة $_FILES['file1']['size '] : كما هو واضح من الأسم , تُحدد هذه القيمة حجم الملف الذي تم رفعه مقدرا ً بالبايت , لذا قد تحتاج الى قسمة هذا الرقم على 1024 أو 1024^2 للحصول على حجم الملف مقدرا ً بالكيلوبايت أو الميغابايت على التوالي . - القيمة $_FILES['file1']['type'] : تُحدد هذه القيمة ما يُسمى MIME type للملف الذي تم رفعه , فمثلا ً تكون قيمة MIME type لملف من صيغة png : image/png , أو لملف pdf : application/pdf , ملف مضغوط من نوع zip : application/zip ... - القيمة $_FILES['file1']['tmp_name'] : تُحدد هذه القيمة اسم الملف المؤقت المُخزن على الخادم , وسيتم استخدام هذه القيمة كثيرا ً عند استدعاء الدوال الخاصة برفع الملفات كما سنرى لاحقا ً . - القيمة $_FILES['file1']['error'] : لا يمكن أبدا ً ضمان سير عملية رفع ملف على الخادم بشكل صحيح , وبعض الأحيان تكون هنالك مشكلة في رفع الملفات و من المُفيد معرفتها و تبليغ المستخدم عن سبب الخطأ , حيث تُعيد القيمة $_FILES['file1']['error'] رقم رسالة الخطأ أو الثابت الموافق لها . و هذه اشهرها : الرقم 0 UPLOAD_ERR_OK : يُعيد المتغير $_FILES['file1']['error'] هذه القيمة عندما تتم عملية رفع الملف بنجاح دون أي أخطاء . الرقم 1 UPLOAD_ERR_INI_SIZE : يُعيد المتغير $_FILES['file1']['error'] هذه القيمة عندما يتم رفع ملف حجمه يتجاوز الحجم المسموح به المُحدد بالراية upload_max_filesize الموجودة في ملف php.ini . الرقم 3 UPLOAD_ERR_PARTIAL : يتم إعادة هذه القيمة عند رفع جزء من الملف وعدم تكمن من رفعه كاملا ً كحدوث مشكلة في الشبكة ... الرقم 4 UPLOAD_ERR_NO_FILE : يتم إعادة هذه القيمة عندما يقوم المُستخدم من ارسال نموذج HTML دون تحديد ملف لكي يتم رفعه . وبالطبع يمكن التحقق من رسالة الخطأ أما باستخدام الأرقام أو بمساواتهم بالثوابت السابقة , مثال يقوم بطباعة حالة رفع ملف : <?phpswitch ($_FILES['file1']['error']){ case UPLOAD_ERR_OK: echo "File uploaded succesfuly"; break; case UPLOAD_ERR_INI_SIZE: echo "Uploaded File is too big"; break; case UPLOAD_ERR_PARTIAL : echo "File is not completely uploaded"; break; case UPLOAD_ERR_NO_FILE : echo "No File was Selected"; break; default: echo "UnKnown Error"; break;}?>و يقوم متصفح المُستخدم بارسال اسم الملف الأصلي ونوعه في HTTP header , وبالتالي فليس من المُفضل التحقق من نوع الملف عن طريق $_FILES['file1']['type'] و عوضا ً عن ذلك نقوم بإستخراج إمتداد الملف والتحقق منه . دوال رفع الملفات : التحقق من رفع ملف : يتم تمرير وسيط وحيد هو الأسم المؤقت للملف الذي تم رفعه الى الدالة is_uploaded_file للتأكد من رفعه , تُعيد هذه الدالة true في حال تم رفع الملف و false عدا ذلك , شكلها العام : is_uploaded_file($filename);نقل الملف : نستخدم الدالة move_uploaded_file لنقل ملف تم رفعه الى مجلد مُعين تقبل هذه الدالة وسيطين : الوسيط الأول هو اسم الملف المؤقت و الثاني هو المسار الهدف الذي سيتم نقل الملف إليه . شكل الدالة العام : move_uploaded_file($tmp_name, $distination);يمكن ان يكون قد خطر ببالك استخدام احدى الدالتين copy لنسخ الملفات أو rename لنقل الملفات اللتان تم شرحهما في درس التعامل مع الملفات و المجلدات لنسخ أو نقل الملفات التي يتم رفعها على الخادم , يمكنك استخدامهم لكن لغة php دوال أكثر أمانا ً , مثال عن رفع ملف : <html> <head> </head> <body> <form action="index3.php" method="post" enctype="multipart/form-data"> <input type="file" name="file1"> <br> <input type="submit"> </div> </form> </body></html>و يتوجب وجود مجلد باسم upload على سبيل المثال لكي يتم نقل الملفات المرفوعة عليه (لا تنسى تحديد الصلاحيات المناسبة) كود صفحة file_upload.php : <?php$explode = explode('.', $_FILES['file1']['name']);$ext = $explode[count($explode) - 1];if($ext != 'png'){ echo "Only PNG images can be uploaded"; exit();}if(is_uploaded_file($_FILES['file1']['tmp_name'])){ $result = move_uploaded_file($_FILES['file1']['tmp_name'], 'upload/'. basename($_FILES['file1']['name'])); echo $result === true ? 'File uploaded successfuly' : 'There are some errors';}else{ echo 'No File uploaded';}?> وبالطبع يجب أن يكون هناك مجلد باسم upload (لا تنسى تحديد الصلاحيات المُناسبة) , و يُفضل استخدام الدالة basename عند الاشارة الى الاسم الأصلي للملف . رفع عدة ملفات : إن لغة php تدعم ما يُسمى HTML arrays لذا يمكن استخدام هذه الميزة لرفع عدد من الملفات سوية ً , و عندها ستكون مصفوفة $_FILES ثلاثية الابعاد حيث سيكون البُعد الثالث هو رقم حقل الملف ويبدأ العد - كالعادة - من القيمة صفر حيث يكون اسم الملف الاصلي لأول حقل ملف هو : $_FILES['file']['name'][0] وللملف الثاني $_FILES['file']['name'][1] ... الخ , ويكون نموذج HTML كالتالي : <form action="file_upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="file[]"> <br> <input type="file" name="file[]"> <br> <input type="file" name="file[]"> <br> <input type="file" name="file[]"> <br> <input type="submit"></form>و سنقوم بطباعة محتويات المصفوفة $_FILES في الصفحة file_upload.php التالية : <?phpprint_r($_FILES);?>تنسيق حقل رفع الملف : اذا قمت َ سابقا ً بمحاولة تنسيق حقل لرفع ملف , فمن المؤكد من أنك قد لاحظت عدم توفر عدد كبير من الخيارات . فعلى سبيل المثال لا يمكنك تغيير كلمة browse .. و لا يمكنك تغيير أبعاد الحقل ...الخ , وللإلتفاف على هذه الإشكالية يمكن استخدام الطريقة التالية : في البداية نقوم بانشاء حقل نص و زر عادي و من ثم نقوم بجعل حقل رفع الملف فوقهم (باستخدام خاصية z-index في css) وجعل حقل الملف شفاف تماما ً ونقوم بتنسيق حقل النص العادي و زر التصفح كما نُريد , في المثال التالي سنقوم بتغيير بسيط باستبدال كلمة browse .. بالكلمة Add File :   <html> <head> <style> * { padding:0px; margin :0px; } #realupload { position:absolute; top : 0px; left: 0px; opacity:0; -moz-opacity:0; -webkit-opacity:0; -o-opacity:0; z-index: 2; } </style> </head> <body> <form> <div stlyle="position:relative;"> <input type="text" id="text_field"> <input type="button" value = "Add File"> <input type="file" name="upload" id="realupload" onchange="document.getElementById('text_field').value = this.value;"> </div> </form> </body></html>ولتغيير قيمة حقل النص تلقائيا ً عند تحديد ملف , قمنا بوضع سطر javascript التالي في خاصية onchange   document.getElementById('text_field').value = this.value; طريقة جميلة أليست كذلك :) انشاء حقل تقدم رفع ملف : في السابق كان مطورو الويب يستخدمون تقنية الفلاش لإظهار تقدم رفع الملفات للمستخدم , أما مؤخرا ً فقد ظهرت مكتبة php تدعم هذه الميزة تُسمى APC تدعم هذه الميزة , ولكن لا يمكن تنصيب مكتبة APC على إصدارات php اقل من 5.2 , وإفتراضيا ً لا تأتي هذه المكتبة مدمجة مع php بشكل إفتراضي , لذا تحتاج الى اضافتها يدويا ً (أو بالطبع الطلب من شركة الإستضافة إن وافقت) . أما في إصدار php 5.4 الذي تم إصداره في 2012-03-01 فأصبح يوفر ميزة Session Upload Progress بشكل إفتراضي دون أية إضافات وتأتي مُفعلة إفتراضيا ً في ملف php.ini . وسيتم اعتماد Session Upload Progress في أمثلتنا القادمة . في البداية يجب تضمين حقل مخفي hidden في نموذج HTML قبل حقل رفع الملف ويجب ان يكون خاصية name لهذا الحقل مساوية لقيمة الراية session.upload_progress.name الوجودة في ملف php.ini لذا سنستخدم الدالة ini_get للحصول عليها , ويمكن وضع أي قيمة (value) تريدها لهذا الحقل , كما في المثال التالي :   <form action="php_upload.php" method="post" enctype="multipart/form-data"> <input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="file1_upload"> <input type="file" name="file1"> <input type="submit"></form> مصفوفة المعلومات حول تقدم رفع الملف موجودة في مصفوفة $_SESSION :   <?php$key = ini_get("session.upload_progress.prefix") ."file1_upload";print_r($_SESSION[$key]);/*Example when uploading big file like iso image of ubuntuArray( [upload_progress_123] => Array ( [start_time] => 1362916055 [content_length] => 705999396 [bytes_processed] => 247534688 [done] => [files] => Array ( [0] => Array ( [field_name] => file1 [name] => ubuntu-11.10-alternate-i386.iso [tmp_name] => [error] => 0 [done] => [start_time] => 1362916055 [bytes_processed] => 247534364 ) ) ))*/?>  ويجدر بالذكر بأن المصفوفة السابقة سيتم حذفها فور الإنتهاء من رفع الملف , فسوف نحتاج الى استخدام تقنية ajax للحصول عليها . ملاحظة : اذا اردت تجربة الأمثلة التالية على خادم محلي فيتوجب عليك زيادة قيم الرايتين "post_max_size" و "upload_max_filesize" للتمكن من رفع ملفات كبيرة الحجم , لأن الملفات الصغير تُرفع بشكل سريع ولا يُمكنك ملاحظة شريط التقدم . ملاحظة : حسب تجربتي ; يوجد عدد من المشاكل لدى محاولة استخدام ajax في أثناء رفع الملف في بعض المتصفحات , لذا سأقوم بوضع نسبة التقدم في اطار منفصل iframe . ملف form.php الذي يحوي على نموذج رفع الملف :   <?phpsession_start();?><!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>File uploading Example</title> </head> <body> <form action="php_upload.php" method="post" enctype="multipart/form-data"> <input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="file1_upload"> <input type="file" name="file1"> <input type="submit"> </form> <iframe src="progress.html" style="border: 0; width: 500px"></iframe> </body> </html> اما ملف php الذي سوف يطبع النسبة المئوية لتقدم رقع الملف php_progress.php :   <?phperror_reporting(0);session_start();$key = ini_get("session.upload_progress.prefix") . 'file1_upload';if(isset($_SESSION[$key]['bytes_processed']) AND $_SESSION[$key]['bytes_processed'] != 0){ $file_uploaded = true; echo round($_SESSION[$key]['bytes_processed'] / $_SESSION[$key]['content_length'] * 100); }elseif($file_uploaded === true AND $_SESSION[$key]['bytes_processed'] == 0){ echo 100;}?> قمنا بمنع عرض الأخطاء في الصفحة تفاديا ً لحصول مشاكل في ajax , ملف progress.html الذي يستخدم تقنية ajax للحصول على نسبة التقدم :   <?phpsession_start();?><!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>File uploading Example</title> <script type="text/javascript"> window.setInterval(ajax, 1000); function ajax() { req = new XMLHttpRequest(); req.open("post", "progress.php"); req.send(); req.onreadystatechange=function() { if (req.readyState==4 && req.status==200) { document.getElementById("progress").innerHTML=req.responseText; document.getElementById("progress").value =req.responseText; } } } </script> </head> <body> <progress max="100" value="0" id="progress"></progress> </body> </html>استخدمت وسم HTML5 المُسمى progress الذي يقبل خاصيتين max وهي القيمة الأعلى و value هي القيمة الحالية . وبعض المتصفحات لا تدعم HTML5 و يمكن ببعضة أسطر انشاء طريقة بديلة لهذه الطريقة . ولتحميل المثال السابق : file_upload_progress.zip       الدرس السابق | الإنتقال للموضوع الأساسي
  5. السلام عليكم ورحمة الله وبركاتة  هل يمكنني استعادة بيانات sql server  والتراجع عن بعض الاخطاء من خلال ملف log file ؟ وذلك لأنني لا أمتلك backup   ارجو الرد سريعا للاهمية 
  6. السلام عليكم ورحمة الله   وجدت هذا المثال فى احد المنتديات   ولكن حاولت تعديل عليه لكن لم افلح   اريد الغاء قائمة ملف الموجودة فى الاكسيس FILE   او الغاء خيارات الاكسيس منها بحيث لايستطيع احد  الغاء شريط القوائم الخاص بالبرنامج واالدخول للجداول وغيره     ارجوووووووووووو المساعدة   e511.rar
  7. السلام عليكم شباب أنا أعمل على إنشاء مشروع بـ Arduino والذي تستعمل فيه لغة Arduino C للبرمجة ، وهذه اللغة سليلة  C و ++C ولا توجد إختلافات كثيرة،   الذي أبحث عنه هو أني أريد إنشاء ملف رأسي h. أضع فيه مجموعة من الدوال و المتغيرات ، وأقوم بإستدعاء هذه الدوال من خلال البرنامج الرئيسي وأضيف  هذه المكتبة ضمن : include<aaa.h> // okواستدعاء دوالها مباشرة بالمختصر المفيد ، كيف بمكن إنشاء مكتبة دوال وربطها بملف برنامجك الرئيسي ؟   شكرا شباب وفي إنتظار تفاعلكم ,,
  8. ارجوا المساعدة GridView

    السلام عليكم ..,, جمعة مباركة اخواني  اشكركم على هذا المنتدى الرائع .. اولا :- لدي مشكة بالتعامل مع GridView  عندي ملف Xml و اعرضة بأستخدام GridView  المشكلة اني اريد ان اجعل العامود الاول الذي يحتوي على (ID) لجميع الطلاب Hyperlink عندما انقر على اي رقم من ارفام الطلاب انتقل من الصفحة الاولى الى الصفحة الثانية التي تحتوي على TextBox وتعرض كل معلومات الطالب داخل textbox    ثانيا :- الصفحة الثانية تحتوي على Button اسمة Add new student .. عندما نقوم بالخطوة التي تم ذكرها مسبقا يجب ان يتغير اسم Button ويصبح اسمه Update    ثالثا :- انشاء عامود جديد في GridView اسمة Delete وبداخلة Image link عند الضغط علية يظهر رسالة تحذير انك ستقوم بحذف الطالب هل انت متأكد (نعم) او (لا) .. اذا كان الجواب نعم يتم حذف الطالب من GridView اذا كان الخيار لا يخرج من message box    تنوية :- المثال موجود بالمرفقات ..ارجو السماعدة اخواني ..!!   شكرا لكم ,,, WebSite222.rar
  9. السلام عليكم    لقد قمت بتخزين عدة قواعد بيانات من موقع UCI ، وأغلبها تكون بشكل ملفين بالامتدادات : .names ,  .data عندما أحاول فتح الملفات في البرنامج تظهر الرسالة كما في الصورة المرفقة لا أعلم ما سبب المشكلة . وكيف يمكن أن أحول هذه الملفات إلى ملفات من نوع CSV بطريقة غير يدوية؟ وقد حاولت فتح ملفات من نوع CSV ولم أواجه مشاكل  إصدار ال WEKA الذي أستخدمه هو 3.6 وحتى عند استخدام ال converter تظهر رسالة خطأ  شكرا للمتابعة
  10. السلام عليكم ورحمة الله وبركاته      بحثت مطولا عن كيفية انشاء صفحة لتحميل ملفات وملفات وسائط بجميع صيغها وتخزين كل صيغة بنفس قاعدة البيانات الخاصة بها مثلا الصور  (gpeg , gif ,png)  في قاعدة البيانات الخاصة بالصور والفيديو والفلاش ....الخ نفس الشاكلة    ولم أجد مايفيدني    أرجو إفادتي في الموضوع لانه مشروع موقع مكتبة رقمية و لابد أنهاءه في أقرب وقت      ولكم جزيل الشكر ...
  11. بسم الله الرحمن الرحيم   بعد السلام عليكم - ارجو احدا من الخبراء افادتي كيفية تحويل ADO.NET الي DLL file لمشروع Web Development   - وهل يمكنني القدره علي تحويل عكسي لملف ال dll واسترجاع منه علي سبيل المثال Data Sets ؟   ولكم جزيل الشكر
  12. السلام عليكم كيف الحال  انا اواجه مشكلة لما اعمل ابلود لفايل على اون لاين سيرفر ويطلعلي    PHP Warning: move_uploaded_file(upload/13685242472.jpgphp1E23.tmp) [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: failed to open stream: Permission denied in D:\Inetpub\vhosts\lpclibya.com\httpdocs\edit\news.php on line 57PHP Warning: move_uploaded_file() [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: Unable to move 'C:\Windows\Temp\php1E23.tmp' to 'upload/13685242472.jpgphp1E23.tmp' in D:\Inetpub\vhosts\lpclibya.com\httpdocs\edit\news.php on line 57ياريت تساعدوني على فهم المشكلة والحل 
  13. القراءة من ملف

    السلام عليكم ورحمة الله سأطرح مشكلتي في هذا المنتدى الراقي في تعامله وأسلوبه، ومشكلتي أني عملت برنامج والحمدالله قد نجحت في كتابته ولكن مشكلتي كيف أجعل هذا البرنامج يقرأ من ملف.. قد لا تدركون معنى مشكلتي حتى أضع الكود لكن عندما أجد من يحاول المساعدة فسأضع الكود أرجو المساعدة..