2014-05-24 8 views
5

मुझे यह जांचने की आवश्यकता है कि फ़ाइल का वैध एमआईएम प्रकार है, अगर फ़ाइल का आकार ठीक है और यदि इसके आयाम ठीक हैं, तो फ़ाइल अपलोड करें।DropzoneJS में एक कस्टम त्रुटि संदेश कैसे दिखाएं?

तो जब सब कुछ ठीक है, मैं उपयोग कर सकते हैं:

complete: function(file){ 
    // do something here. 
} 

लेकिन क्या फ़ाइल का आकार अवैध था तो क्या होगा?

return json_encode(['error' => 'size is invalid']); 

या

return Response::json(['error' => 'size is invalid'], 500 ]; 
// this is Laravel 4 syntax. returns a json array and 500 as status code. 

लेकिन मैं कैसे संभाल कर सकते हैं कि DropzoneJS में error: मेरे PHP स्क्रिप्ट में मैं एक त्रुटि संदेश लौटने?

मैंने complete() फ़ंक्शन में दूसरा पैरामीटर जोड़ने का प्रयास किया लेकिन यह काम नहीं कर रहा है।

complete: function(file, response){ 
    console.log(response); // this does not work. 
} 

उत्तर

7

प्रतिक्रिया प्राप्त करने के लिए के बाद फ़ाइल DropzoneJS में सर्वर इस प्रयोग के लिए प्रस्तुत किया गया था:

success: function(file, response) { 
    alert(response); 
} 

और यह इस का उपयोग अपलोड करने से पहले फ़ाइल सत्यापित करने:

complete: function(file) { 
    if (file.size > 3.5*1024*1024) { 
    alert("File was Larger than 3.5Mb!"); 
    return false; 
    } 

    if(!file.type.match('image.*')) { 
    alert("Upload Image Only!"); 
    return false; 
    } 
} 

यदि आपका JSON में सर्वर response लौटा रहा है, आपको alert से पहले JSON.parse का उपयोग करना होगा।

आशा है कि यह आपकी मदद करेगा! चीयर्स! :)

+2

बस कुछ मुझे लगता है कि उपयोगी है जोड़ने के लिए: यदि आप घटनाओं को सुनने चाहिए (http://www.dropzonejs.com/#toc_8) यह पुनर्लेखन नहीं (https://github.com/enyo/dropzone/issues/297)। चीयर्स! :) – amandasantanati

+0

@amandasantanati वास्तव में वास्तव में अच्छा है, यह आपको और अधिक कार्यक्षमता जोड़ने की अनुमति देगा। लिंक के लिए +1। –

1

बस सरल करने के लिए क्या @amandasantanati इतना कहा कि तुम चारों ओर क्लिक न करें:

complete: ... मत करो, लेकिन इसके बजाय:

init: function() 
    { 
     this.on("complete", function(file) { 
      if (file.size > 3.5*1024*1024) { 
       this.removeFile(file); 
       alert('file too big'); 
       return false; 
      } 

      if(!file.type.match('image.*')) { 
       this.removeFile(file); 
       alert('Not an image') 
       return false; 
      } 
     }); 
    }, 
1

HTTP प्रतिक्रिया कोड http_response_code सेट (415) ; // असमर्थित मीडिया प्रकार या http_response_code (415); // नहीं स्वीकार्य

function showError($message) 
    { 
     http_response_code(415); 
     die($message); 
    } 

enter image description here

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