2015-06-12 11 views
8

में ब्लॉब URL से फाइल को एम्बेड मैं एक वेब सेवा है कि एक arraybuffer जो फिर एक ब्लॉब वस्तु में पढ़ा जाता है के रूप में ग्राहक एक फाइल भेज रहा है है:"प्रवेश निषेध है" जब IE

$scope.contentType = response.headers["content-type"]; 
$scope.file = new Blob([response.data], { type: $scope.contentType }); 
$scope.fileUrl = URL.createObjectURL($scope.file); 
$scope.content = $sce.trustAsResourceUrl($scope.fileUrl); 

मैं उपयोग कर रहा हूँ कंटेनर के रूप में एक वस्तु टैग:

<object id="documentContainer" ng-show="loaded" ng-attr-type="{{contentType}}" ng-attr-data="{{content}}" class="document-container"></object> 

यह एफएफ, क्रोम, मोबाइल ब्राउज़र में अच्छा काम करता है, वेब ब्राउज़र विदेशी प्रजातियों जो मानवता, आदि के साथ संपर्क था कभी नहीं किया है, लेकिन नहीं IE में द्वारा विकसित।

जब वस्तु टैग के डेटा पैरामीटर सेट किया गया है, IE

Error: Access is denied.

यह IE में सुरक्षा सुविधा में किसी प्रकार का होना करने के लिए जहां यह रूप में फ़ाइल का उपयोग नहीं करना चाहता है लगता है के साथ कंसोल में प्रतिक्रिया करता है एक स्रोत क्योंकि यह क्लाइंट मशीन पर रहता है। यह डेटा स्रोत सेट के साथ एक नया नया डोम तत्व बनाने के लिए जावास्क्रिप्ट का उपयोग करने पर भी पहुंच को प्रतिबंधित करता है।

माइक्रोसॉफ्ट msSaveOrOpenBlob जैसे अपने स्वयं के ब्लॉब विधियों को प्रदान करता है, लेकिन मुझे ब्राउज़र में फ़ाइल को एम्बेड करने में सक्षम होना चाहिए, उपयोगकर्ता को बाहरी एप्लिकेशन में फ़ाइल खोलने के लिए संकेत नहीं देना चाहिए।

किसी को भी एक समाधान या ब्लॉब एम्बेड करने के लिए जिस तरह से पता है, IE में फ़ाइल प्रकारों की एक विस्तृत विविधता हो सकता है,? आईई को समायोजित करने के लिए मुझे वेब सेवा और फ्रंट एंड कोड को काफी हद तक प्रतिक्रिया देना होगा, लेकिन ऐसा लगता है कि ऐसा होना आवश्यक हो सकता है।

उत्तर

2

मुझे लगता है कि उत्तर "नहीं" है। हमारी साइट फ्लाई पर पीडीएफ उत्पन्न करती है लेकिन हम ब्राउजर को स्नीफ करते हैं कि लौटा पीडीएफ के साथ क्या किया जा सकता है।

उदाहरण: http://www.cloudformatter.com/CSS2Pdf.Demos.Structures

आप "एम्बेड पीडीएफ" यहाँ का चयन कर सकते हैं और यह एक आकर्षण की तरह काम करता ... यदि आप IE पर कर रहे हैं, भले ही आप का चयन "एम्बेड करें" यदि आप Chrome पर कर रहे हैं, यह डाउनलोड करता है फ़ाइल। क्योंकि आईई नहीं कर सकता है और हम सिर्फ आईई पर डाउनलोड कोड पर किसी को भी दोबारा शुरू करते हैं।

http://caniuse.com/#feat=datauri

और हमें और क्या IE पर गलत है पर शुरू नहीं मिलता है, पृष्ठों के कई बस तोड़ दिया क्योंकि आईई दस्तावेज़ में कुछ "पी" टैग के लिए अंत टैग serializing बंद कर दिया।

+0

हालांकि ब्लॉब एपीआई डेटा यूरिस का उपयोग करने से काफी अलग है। डेटा यूआरआई वास्तव में केवल छोटी फ़ाइलों को एन्कोड करने के लिए हैं - मुझे लगता है कि अधिकांश ब्राउज़रों की लंबाई के लिए कुछ एमबी की सीमा होती है। अधिकांश भाग के लिए और केवल आईई में – mrturburdaugh

+0

4 जीबी। ऊपर दिए गए लिंक के अनुसार, आईई 9 में 4 जीबी सीमाएं शुरू हुईं। –

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