اذهب إلى المحتوى

السؤال

نشر (معدل)

أريد رفع ملف على موقع بشكل غير متزامن "asynchronously " باستعمال Jquery وهذا هو ملفي لـ Html:

<span>File</span>
<input type="file" id="file" name="file" size="10"/>
<input id="uploadbutton" type="button" value="Upload"/>

وكود Jquery:

$(document).ready(function () {
    $("#uploadbutton").click(function () {
        var filename = $("#file").val();

        $.ajax({
            type: "POST",
            url: "addFile.do",
            enctype: 'multipart/form-data',
            data: {
                file: filename
            },
            success: function () {
                alert("Data Uploaded: ");
            }
        });
    });
});

عوض عملية رفع الملف أريد الحصول على اسم الملف، مع رفعه بشكل غير متزامن 'في الخفاء'، كيف ذلك؟

تم التعديل في بواسطة Simoh

Recommended Posts

  • 0
نشر (معدل)

html5 توفرإمكانية رفع الملفات باستخدام تقنية Ajax ومكتبة Jquery، بل وأكثر من هذا تُمكن من تحديد معاير الملف (name,size...).

كود html:

<form enctype="multipart/form-data">
    <input name="file" type="file" />
    <input type="button" value="Upload" />
</form>
<progress></progress>

يمكن التأكد من نوع الملف وخصائصه عن طريق ملف javascript:

$(':file').change(function(){
    var file = this.files[0];
    var name = file.name;
    var size = file.size;
    var type = file.type;
    //تأكد من خصائص لملف، حسب المعايير التي تريده
});

تقنية Ajax لإرسال الملف:

$(':button').click(function(){
    var formData = new FormData($('form')[0]);
    $.ajax({
        url: 'upload.php',  //رابط ملف رفع الملف
        type: 'POST',
        xhr: function() {  //  XMLHttpRequest
            var myXhr = $.ajaxSettings.xhr();
            if(myXhr.upload){ // التأكد من وجود خاصية رفع الملفات
                myXhr.upload.addEventListener('progress',progressHandlingFunction, false); 
            }
            return myXhr;
        },
        //Ajax  
        beforeSend: beforeSendHandler,
        success: completeHandler,
        error: errorHandler,
        //  dataالبيانات 
        data: formData,
        // في حالة عدم نجاح عملية الرفع
        cache: false,
        contentType: false,
        processData: false
    });
});

التأكد من تقدم رفع الملف حتى الانتهاء:

function progressHandlingFunction(e){
    if(e.lengthComputable){
        $('progress').attr({value:e.loaded,max:e.total});
    }
}

 

تم التعديل في بواسطة E.Nourddine

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...