يا جماعة ياريت تردوا عليا بسرعة انا عملت سكربت لرفع الملفات ابلود بال php لكن مش عارف اعمل حساب وقت رفع الملف وعمل نسبة مئوية ياريت تدلوني علي الطريقة بسرعة دي عاملة لي مشكلة في المشروع بتاعي وربنا يجازيكم خير عن عملكم الطيب
[ تمت الإجابة ]مشكلة في سكربت الابلود
السلام عليكم
http://blueimp.github.com/jQuery-File-Upload
http://pixeline.be/experiments/jqUploader/test.php
https://github.com/valums/file-uploader
https://github.com/ifunk/swfupload-jquery-plugin
http://tutorialzine.com/2011/09/html5-file-upload-jquery-php
دمت في أمان الله
لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق
لا إله إلا أنت سبحانك إني كنت من الظالمين
اخي الفاضل الف الف شكر علي تعبك ومجهودك انا شوفت الامثلة فعلا هو ده الي محتاجه بالظبط لكن للاسف المشكلة فيا انا انا عندي خبرة بال php فقط لكن الجي كيوري والجافا سكربت ضعيف جدا لذلك محتاج من حضرتك تتعب معايا معلش تاني وتعرفني ازاي اقدر اربطها بالسكربت بتاعي انا عامل سكربت بسيط جدا لرفع الصور وادخال البيانات في قاعادة البيانات ومتشكر جدا جدا وربنا يجازيك الف خير يارب
السلام عليكم
بارك الله فيك أخي العزيز
ولكن عليك تعلم javaScript وطريقة التعامل مع مكتبة الـjQuery فهذه المكتبة ستسهل عليك الكثير .
الطريقة تعتمد على تقنية الـAJAX من خلال الـjavaScript وهي إنشاء مستمع Listener لحالة الملف المرفوع , سأضع لك مثال بسيط ولكن سأستخدم كائن الـ FormData وهو أضيف مؤخراً فلكي يعمل التطبيق معك بشكل جيد عليك بتحديث متصفحك لأخر إصدار وإذا كنت من مستخدمي IE فلن يعمل على IE9 فعليك الترقية إلى IE10 المدمج مع Windows 8 , وإن كنت لا تريد هذه الطريقة فعليك بإستخدام طريقة الـ iFrame لرفع الملف .
أولاً : هيكلة HTML بسيطة لواجهة رفع الملف :
<!DOCTYPE html> <html dir="rtl"> <head> <title> حالة رفع الملف </title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript"> </script> </head> <body> <form id="myForm" enctype="multipart/form-data"> <label>فضلاً قم بإختيار الملف</label><br> <input type="file" name="file"/><br> <input type="button" onclick="upload()" value=" رفع الملف " /> <div id="percent"></div> </form> </body> </html>
- واضح أن النموذج لا يحتوي على ذر submit أو الـaction للنموذج لأننا نستخدم تقنية الـAJAX لرفع الملف في نفس الصفحة , وضعت دالة upload في حدث الضغط على ذر الرفع , وهناك وسم بمعرف percent سنضع به النسبة المئوية لعملية رفع الملف .
نأتي الآن لكود الـjavaScript الخاص برفع الملف :
function upload(){
var fileUpload = new FormData(document.getElementById('myForm'));
var xmlhr = new XMLHttpRequest();
xmlhr.upload.addEventListener("progress", uploadProg, false);
xmlhr.addEventListener("load", uploadComplete, false);
xmlhr.open("POST", "upload.php");
xmlhr.send(fileUpload);
}- تم إنشاء كائن باسم fileUpload من النموذج الحالي وتم إنشاء كائن باسم xmlhr لإستقبال بيانات الملف المرفوع من الخادم , ثم السطر التالي تم إنشاء مستمع للحدث أثناء الرفع الوسيط الأول نوع الحدث والوسيط الثاني uploadProg هو دالة هذا الحدث وسنكتب بها ما نشاء .
- السطر التالي هو حدث الإنتهاء من رفع الملف والوسيط الأول نوع الحدث والثاني "uploadComplete" دالة الحدث سمها كما تشاء هي أو السابقة .
- السطر التالي نوع إرسال البيانات وهو POST والوسيط الثاني هو ملف المعالجة الخاص بك وليكن upload.php
- السطر الأخير هو إرسال النموذج للمعالجة .
والآن سنكتب دوال مستمع الحدث كالتالي :
function uploadProg(event) {
if (event.lengthComputable) {
var percent = parseInt((event.loaded/event.total)*100);
document.getElementById('percent').innerHTML = percent.toString() + '%';
}
else {
document.getElementById('percent').innerHTML = 'Not Computable!';
}
}
function uploadComplete(evtent) {
alert(evtent.target.responseText);
}- الدالة الأولى uploadProg وهي دالة الحدث أثناء رفع الملف وتأخذ وسيط وهو كائن الحدث, event.lengthComputable وهو يعطينا الملف قابل للتتبع أم لا , event.loaded تعطينا الحجم المرفوع من الملف و event.total تعطينا حجم الملف الكلي بقسمتهم وضربهم في 100 نحصل على النسبة المئوية للجزء المرفوع من الملف ومن ثَم نحول النسبة لعدد صحيح ونقوم بإدراجها داخل الوسم ذو المعرف percent .
- ثانياً: دالة إكتمال رفع الحدث وتأخذ أيضاً وسيط كائن إكتمال رفع الملف وعند تنفيذ هذه الدالة بعد إكتمال تحميل الملف سيعرض لنا المتصفح نافذة بها بيانات حالة رفع الملف .
- هناك أحداث أخرى لم أذكرها حتى لا يتضخم الكود
وهذا كود بسيط بـ php لرفع ملف :
[code]<?php move_uploaded_file($_FILES["file"]["tmp_name"],"upload/".$_FILES["file"]["name"]); ?>
والتالي الكود كامل :
<!DOCTYPE html>
<html dir="rtl">
<head>
<title> حالة رفع الملف </title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
function upload(){
var fileUpload = new FormData(document.getElementById('myForm'));
var xmlhr = new XMLHttpRequest();
xmlhr.upload.addEventListener("progress", uploadProg, false);
xmlhr.addEventListener("load", uploadComplete, false);
xmlhr.open("POST", "upload.php");
xmlhr.send(fileUpload);
}
function uploadProg(event) {
if (event.lengthComputable) {
var percentComplete = parseInt((event.loaded/event.total)*100);
document.getElementById('percent').innerHTML = percentComplete.toString() + '%';
}
else {
document.getElementById('percent').innerHTML = 'Not Computable!';
}
}
function uploadComplete(evtent) {
alert(evtent.target.responseText);
}
</script>
</head>
<body>
<form id="myForm" enctype="multipart/form-data">
<label>فضلاً قم بإختيار الملف</label><br>
<input type="file" name="file"/><br>
<input type="button" onclick="upload()" value=" رفع الملف " />
<div id="percent"></div>
</form>
</body>
</html>وهذا رابط تنزيل التطبيق
وبالنسبة لإضافة شريط لحالة رفع الملف مع النسبة المئوية يمكنك إستخدام وسم progress في HTML5 كالتالي :
<progress value="10" max="100"></progress>
- فـmax هي القيمة الكلية والـvalue هي القيمة الحالية .
دمت في رعاية الله
لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق
لا إله إلا أنت سبحانك إني كنت من الظالمين
انا بجد مش عارف اشكر حضرتك ازاي حضرتك فعلا انسان رائع انا حليت المشكلة بالفعل علي ايديك وشرحك ممتاز لذلك انا اتمني اكون زيك فعلا كان الله في عون العبد مادام العبد في عون اخيه انا حاولت كتير اتعلم الجافا سكربت لكن ملقتش شرح كويس لكن كل الي لقيته لايمثل الا 1% في المية من الجافا سكربت ولكن انا عايز اقولك بجد الف شكر ليك شكرررررررراااااااااااااااااا
السلام عليكم
بارك الله فيك أخي العزيز , تكون أفضل مني بإذن الله , كلنا نتعلم و كلنا يحتاج للعلم وسنظل نتعلم إلى أن نموت
بالنسبة لمصادر تعلم لغة javaScript فقد رفعت لك الإسطوانة المرئية التالية باللغة العربية على رابطين على موقع MediaFire :
http://www.mediafire...bht577muvifg5e1
http://www.mediafire...093alcc5pehb4ax
وهذا رابط كتاب باللغة العربية عن الـjavaScript
http://www.mediafire...qtcsn78d82qa8bp
وهذا رابط لدورة عن الـ jQuery للأستاذ يوسف إسماعيل
وهذا كتاب عن الـ jQuery باللغة العربية
http://www.mediafire...7nb313pu394uhe1
وهذا كتاب به شرح وأمثلة جيدة لمكتبة الـ jQuery -بالإنجليزية-
http://www.mediafire...4725f4xbpzz574y
وموقع المكتبة به توثيق جيد لها على الرابط التالي -بالإنجليزية-
بالنسبة لمصادر التعلم الأخرى باللغة الإنجليزية
http://www.echoecho.com/javascript.htm
http://www.tizag.com/javascriptT
http://www.pageresource.com/jscript
ونصيحة مني تعلم أساسيات اللغة فقط في javaScript ومن ثَم الإنتقال لتعلم التعامل مع مكتبة jQuery .
دمتم في أمان الله
لاتحسبن العلم ينفع وحده مالم يتوج ربه بخلاق
لا إله إلا أنت سبحانك إني كنت من الظالمين
والله يا اخي الف شكر ليك انت فعلا اخ خيركم من تعلم العلم وعلمه لك مني فائق الاحترام اسال الله العظيم ان يجعله في ميزان حسانتك
استاذي الكريم اعلم انني قد اطلت عليك انا متأسف جدا لقد تم حل مشكلة حالة رفع الملف بفضل الله علي ايدك ولكن عندما قمت برفع السكربت علي الهوست يقوم السكربت برفع الصور والملفات النصية ولا يقوم برفع الفيديو ولا يقرأ اسم الفايل نيم ارجوا من سيادتك التدخل وانا اكرر شكري لك علي مجهودك السابق واتمني ان تساعدني في هذا الامر بارك الله فيك
مع العلم اني اعطيت الملفت تصريح 777
انا راسلتهم وهو قالي المشكلة مش في الهوست وانا جربت ارفع ملف مضغوط حجمه كبير ما اترفعش برضوا فعرفت ان المشكلة في الملفات الي حجمها كبير