2014-11-25 13 views
34

सफारी में त्रुटि के नीचे प्रदर्शित करें।'URL' पर 'createObjectURL' निष्पादित करने में विफल:

Failed to execute 'createObjectURL' on 'URL': No function was found that matched the signature provided. 

मेरे कोड है:

function createObjectURL(object) { 
    return (window.URL) ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object); 
} 

इस छवि के लिए अपने कोड है:

function myUploadOnChangeFunction() { 
    if (this.files.length) { 
     for (var i in this.files) { 
      if (this.files.hasOwnProperty(i)) { 
       var src = createObjectURL(this.files[i]); 
       var image = new Image(); 
       image.src = src; 
       imagSRC = src; 
       $('#img').attr('src', src); 
       } }   
      } } 
+5

हाय हार्डिक, जब आप उस त्रुटि को प्राप्त करते हैं तो आप अपने 'createObjectURL (...)' फ़ंक्शन पर क्या गुजर रहे हैं? –

+2

ऑब्जेक्ट के लिए ऑब्जेक्ट यूआरएल बनाने के लिए ऑब्जेक्ट यूआरएल या एक ब्लॉब ऑब्जेक्ट होना चाहिए http://sevdocs.io/dom/window.url.createobjecturl – yxf

+1

यह छवि के लिए मेरा कोड है: function myUploadOnChangeFunction() { अगर (this.files.length) { (var.files में var i) { अगर (this.files.hasOwnProperty (i)) { var src = createObjectURL (this.files [i]); var image = new image(); image.src = src; imagSRC = src; $ ('# img')। Attr ('src', src); } } } } –

उत्तर

40

मैं एक ही त्रुटि का अनुभव हुआ, जब मैं createObjectURL लिए कच्चे डेटा पारित कर दिया:

window.URL.createObjectURL(data) 

यह होना चाहिए ब्लॉब या फ़ाइल ऑब्जेक्ट, डेटा स्वयं नहीं। यह मेरे लिए काम किया:

var binaryData = []; 
binaryData.push(data); 
window.URL.createObjectURL(new Blob(binaryData, {type: "application/zip"})) 

भी चेक और अधिक जानकारी के लिए MDN: https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL

0

समस्या यह है कि पाश में प्रदान की कुंजी फ़ाइल के सूचकांक का उल्लेख नहीं है।

for (var i in this.files) { 
    console.log(i); 
} 

ऊपर कोड के उत्पादन में है:

0 
length 
item 

लेकिन क्या उम्मीद कर रहा था:

0 
1 
2 
etc... 

तो त्रुटि तब होती है जब ब्राउज़र निष्पादित करने के लिए, उदाहरण के लिए कोशिश करता है:

window.URL.createObjectURL(this.files["length"]) 

मैं su निम्नलिखित कोड के आधार पर गेज कार्यान्वयन:

var files = this.files; 
for (var i = 0; i < files.length; i++) { 
    var file = files[i], 
     src = (window.URL || window.webkitURL).createObjectURL(file); 
    ... 
} 

मुझे उम्मीद है कि यह किसी की मदद कर सकता है।

नमस्ते!

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