2013-03-07 2 views
5

मैंने देखा कि यह PHP में सुधार था जो PHP 5.4 में जोड़ा गया था।php 5.4 में आप मूल फ़ाइल अपलोड प्रगति पट्टी को कैसे कार्यान्वित करेंगे?

मैं यह भी समझता हूं कि यह सत्र स्थिति का उपयोग करता है और इसे दिखाने के लिए आपको HTML को अपडेट करने के लिए किसी प्रकार की जावास्क्रिप्ट की आवश्यकता होगी। मेरा मानना ​​है कि सबमिट बटन दबाकर जावास्क्रिप्ट ट्रिगर किया गया है। और प्रगति की जांच के लिए एक अंतराल टाइमर सेट किया जा सकता है।

मैं बस इतना करना चाहता हूं कि प्रगति एक div के HTML को अद्यतन करे। (उदाहरण के लिए 25% ... 35%)

मेरी समझ अब तक:
- यह है कि नाम
में जानकारी नहीं है कि से एक सत्र VARIABLE बनाता है - - आप एक छिपा मूल्य
साथ एक फार्म की जरूरत है आप अपनी स्थिति

विकल्प
- विधि 1: एक प्रीबिल्ट का उपयोग करें जिसे आप ऑनलाइन पा सकते हैं। कुछ/कोई भी इसे समझाओ।
- विधि 2: फ़ाइल को किसी अन्य php फ़ाइल में भेजें और JSinterval का उपयोग अपनी प्रगति की जांच करें।
- विधि 3: क्या यह एक ही पृष्ठ पर ऐसा करने का कोई तरीका है?

+0

एक फ़ाइल अपलोड प्रगति पट्टी परिभाषा के अनुसार, कुछ भी बुनियादी है। –

+0

आपने क्या प्रयास किया है? क्या आपने http://php.net/manual/en/session.upload-progress.php पर देखा था? –

+1

मैं प्रक्रिया से उलझन में हूँ। जावास्क्रिप्ट को फॉर्म जमा करने के लिए मजबूर करने के बाद क्या आपको स्थिति मिलती है? या एक ऑनक्लिक घटना का उपयोग करके अपलोड शुरू होता है और आप इसकी स्थिति प्राप्त कर रहे हैं? –

उत्तर

0
<div id="progress"></div> 
<form action="/upload.php" method="POST" enctype="multipart/form-data" id="upload"> 
<input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="upload" /> 

<input type="file" name="file" id="file" /> 
<input type="submit" value="Upload" onclick="upload()"/> 
</form> 

    <script> 
     //Check Sumbit has been clicked; either onclick or event handler 
     //Setup an interval timer updating the 'PROGRESS' div each check 
     //Each Interval: Get SESSION VARIABLE status and Update the div 'PROGRESS' 
     //Once file has completed; Do we redirect or submit the form? 

    function upload() 
    { 
    var xmlhttp; 
    if (window.XMLHttpRequest) 
     {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
     } 
    else 
     {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
    xmlhttp.onreadystatechange=function() 
     { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
     document.getElementById("progress").innerHTML=setInterval(function(){xmlhttp.responseText},500); 
     } 
     } 
    xmlhttp.open("POST","upload_progress.php",true); 
    xmlhttp.send(); 

    } 

</script> 
+0

क्या यह काम करेगा? –

+0

कुछ छोटे गलतियों आप .. उदाहरण "==" setInterval ओर से है पर सावधान रहें ... –

+0

धन्यवाद - मुझे लगता है कि संपादित करेंगे। फिर इसे और कैसे लें? जैसा पेज मैं पर अपलोड पूरा हो गया है एक बार कर रहा हूँ ताज़ा? –

संबंधित मुद्दे