2010-05-17 6 views
8

पर यादृच्छिक रूप से लटकाना अपलोड करें मैं अपने उपयोगकर्ताओं को अपने वेब एप्लिकेशन के माध्यम से छवियों को अपलोड करने में सक्षम बनाने के लिए Uploadify का उपयोग कर रहा हूं।अपलोड करें 100%

मेरी समस्या यह है कि हर बार और फिर (यादृच्छिक प्रतीत होता है) जब प्रगति बार 100% तक पहुंच जाता है तो यह 'लटकता है' और कुछ भी नहीं करता है।

मैं सोच रहा था कि अपलोडिफ़ाइन से परिचित किसी भी डेवलपर को यह पता चल सकता है कि इसे कैसे हल किया जाए? मुझे कुछ मदद की बेहद जरूरी ज़रूरत है।

<javascript> 
jQuery(document).ready(function() { 
jQuery("#uploadify").uploadify({ 
    'uploader'  : 'javascripts/uploadify.swf', 
    'script'   : 'upload-file2.php', 
    'cancelImg'  : 'css/images/cancel.png', 
    'folder'   : 'uploads/personal_images/' + profileOwner, 
    'queueID'  : 'fileQueue', 
    'auto'   : true, 
    'multi'   : true, 
    'fileDesc'  : 'Image files', 
    'fileExt'  : '*.jpg;*.jpeg;*.gif;*.png', 
    'sizeLimit'  : '2097152', 
    'onComplete': function(event, queueID, fileObj, response, data) 
    { 
    processPersonalImage(fileObj.name); 
    arrImgNames.push(fileObj.name); 
    showUploadedImages(true); 
    document.getElementById("photos").style.backgroundImage = "url('css/images/minicam.png')"; 
    }, 
    'onAllComplete' : function() 
    { 
    completionMessage(arrFailedNames); 
    document.getElementById("displayImageButton").style.display = "inline"; 
    document.getElementById("photos").style.backgroundImage = "url('css/images/minicam.png')"; 
    }, 
    'onCancel' : function() 
    { 
    arrImgNames.push(fileObj.name); 
    arrFailedNames.push(fileObj.name); 
    showUploadedImages(false); 
    }, 
    'onError' : function() 
    { 
    arrImgNames.push(fileObj.name); 
    arrFailedNames.push(fileObj.name); 
    showUploadedImages(false); 
    } 
}); 
}); 
</javascript> 

और सर्वर साइड:

यहाँ मेरी सामने के अंत कोड है

if (!empty($_FILES)) 
{ 
    //Get user ID from the file path for use later.. 
    $userID = getIdFromFilePath($_REQUEST['folder'], 3); 
    $row = mysql_fetch_assoc(getRecentAlbum($userID, "photo_album_personal")); 
    $subFolderName = $row['pk']; 
    //Prepare target path/file.. 
    $tempFile = $_FILES['Filedata']['tmp_name']; 
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/'.$subFolderName.'/'; 
    $targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name']; 
    //Move uploaded file from temp directory to new folder 
    move_uploaded_file($tempFile,$targetFile); 
    //Now add a record to DB to reflect this personal image.. 
    if(file_exists($targetFile)) 
    { 
    //add photo record to DB 
    $directFilePath = $_REQUEST['folder'] . '/'.$subFolderName.'/' . $_FILES['Filedata']['name']; 
    addPersonalPhotoRecordToDb($directFilePath, $row['pk']); 
    } 
    echo "1"; 
    die(true); 
} 

किसी भी मदद के लिए धन्यवाद !!

+0

कोड को और अधिक पठनीय बनाने के लिए स्टैक ओवरफ़्लो कोड सुविधा का उपयोग करें – Moak

उत्तर

2

यह एक php त्रुटि की तरह लगता है। मैं फिडलर या PHP प्रतिक्रिया या समान देखने के लिए एक समान समस्या का उपयोग करता हूं। अपने PHP त्रुटि लॉग की जांच करें, वे कुछ प्रकाश डाल सकते हैं।

+0

हेया, मैंने वास्तव में आपकी प्रतिक्रिया की सराहना की तो धन्यवाद। फिडलर आप कहते हैं? मैंने इसके बारे में नहीं सुना है, इसलिए मैं इसे गड़बड़ कर दूंगा और आपको बताऊंगा कि मैं कैसे प्राप्त करता हूं :) त्रुटि लॉग के संबंध में, मैं सस्ता होस्टिंग (होस्टगेटर) का उपयोग कर रहा हूं और मुझे नहीं लगता कि मेरे पास पहुंच है। – Matty

+0

मूल रूप से, आपका कोड कभी भी 'गूंज' 1 '' तक नहीं पहुंचता है। आप अपने कोड में रास्ते के साथ ब्रेकपॉइंट्स को प्रतिबिंबित कर सकते हैं, और परिणामों को देखने के लिए फ़ायरबग का उपयोग कर सकते हैं। मैंने पहले इसमें भाग लिया है और आपको बस कुछ पुराने स्कूल डिबगिंग करना है जब तक आपको अपने कोड में त्रुटि न मिल जाए। – jbnunn

+0

वाह जो गंभीर रूप से मददगार है, मैं सुबह की पहली चीज़ को आजमाउंगा। फ़ायरबग में आप सर्वर को जवाब देते हैं? मैं आउटगोइंग गेट/पोस्ट अनुरोध – Matty

2

मुझे कुछ समय पहले अपलोडिफ़ी (एएसपी.नेट एमवीसी का उपयोग करके) के साथ एक ही समस्या थी - लेकिन आपको निश्चित रूप से अपलोड किए गए उत्तर में अपलोडिफ़ ईवेंट हैंडलिंग और व्यवहार के बारे में कुछ उपयोगी जानकारी मिल जाएगी! इसके उपलब्ध here

+0

HI जिमबो मैं वास्तव में आपके इनपुट की सराहना करता हूं। मैंने स्क्रिप्ट के शीर्ष पर "इको 1" डालने की कोशिश की ताकि स्क्रिप्ट द्वारा इसे कितना दूर किया जाए, इस पर ध्यान दिए बिना स्क्रिप्ट द्वारा वापस किया जाएगा, लेकिन फिर भी यादृच्छिक रूप से फाइलें लटक रही हैं। आईवी ने यह भी देखने के लिए फायरबग का उपयोग करने की कोशिश की कि PHP फ़ाइल क्या लौटाती है, लेकिन प्रतिक्रिया में कुछ भी नहीं देख रहा हूं। कुल नुकसान पर आईएम :( – Matty

+1

आप फायरबग के साथ PHP प्रतिक्रिया देखने में सक्षम नहीं होंगे, क्योंकि अनुरोध फ्लैश द्वारा उत्पन्न होता है। यही कारण है कि मैंने सुझाव दिया: http://www.fiddler2.com/fiddler2/ वास्तविक php प्रतिक्रिया देख सकते हैं – mhughes

+0

ठीक है, मैं तुम्हें अब, बीमार तुम लोगों को पता है कि मैं क्या ढूँढते हैं – Matty

0

ये कदम मैं ले जाएगा, क्रम में हैं:

1) रहो 100% निश्चित है कि आप अपने सर्वर से एक 200 प्रतिक्रिया हो रही है। यदि नहीं, तो उस समस्या को

2) नवीनतम और सबसे बड़ी uplaodify और jQuery

3 का उपयोग करें) जे एस त्रुटियों की जांच करें (फ़ायरबग कंसोल या ब्राउज़र जे एस डिबगर काम करेंगे)

4) का नवीनीकरण है आपके फ़्लैश प्लेयर (यदि है कि यह तो हल करती है आप एक उच्च संस्करण की आवश्यकता होती है सकते हैं)

5) uploadify स्रोत में एक डिबग बयान रखो, विशेष रूप से पूरा हैंडलर में यकीन है कि यह

6 बुलाया जाता है) प्रगति तो होना करने के लिए पहुंच रहा है 100% लेकिन हैंडलर कभी नहीं बुलाया जाता है, मुझे डर है कि अगला कदम क्रियालेख में गोता लगाने के लिए हो सकता है और यह पता लगाने के लिए कि त्रुटि कहां है, डीबगर या कुछ ट्रेस स्टेटमेंट का उपयोग करें। इसका मतलब यह कर सकते हैं वहाँ बाहरी इंटरफ़ेस समारोह

7) बुला में एक बग है कि आप फिक्स करते हैं, तो post_max_size पैरामीटर के लिए

0

Chreck uploadify करने के लिए अपने php.ini फ़ाइल वापस जमा करें। यह होना चाहिए> = upload_max_filesize पैरामीटर। अधिक जानकारी के लिए http://php.net/post-max-size देखें।

0

भविष्य के संदर्भ के लिए: "स्क्रिप्टडाटा" का उपयोग करके अपलोड स्क्रिप्ट में डेटा भेजते समय मुझे यह समस्या थी और इसे खाली दस्तावेज़ भेजने के बजाय अपलोड स्क्रिप्ट में "ठीक" को प्रतिबिंबित करके हल किया गया।

+0

मुझे मिली समस्या यह है कि यह सोचता है कि फ़ाइल सफलतापूर्वक पूर्ण हो गई है। – Cfreak

0

मैक का उपयोग करने वाले लोगों के लिए अनुरोध देखने के लिए HTTP Scoop का उपयोग करें क्योंकि फ़ायरबग इसे नहीं दिखाता है। this blog से HTTP स्कूप पर अधिक।

1

मुझे एक ही समस्या थी। बस अपनी अपलोड स्क्रिप्ट में echo "astlavista babi" जोड़ें, यदि आपके पास सशर्त स्टेटमेंट है तो यह गूंज स्टेटमेंट अंतिम पंक्ति होनी चाहिए, तो सशर्त कथन के भीतर एक पंक्ति को अंतिम पंक्ति के रूप में रखा जाना चाहिए।