2015-06-22 10 views
6

है, मैं अपने डेस्कटॉप से ​​छवियों को बिना किसी मुद्दे के शेयरपॉइंट पर ओवरलेड किए गए एक कोणीय आधारित वेब एप्लिकेशन में अपलोड करने में सक्षम हूं, लेकिन अगर मैं किसी मोबाइल फोन से अपलोड करता हूं, जैसे कि आईफोन, "फोटो या वीडियो ले लो" या "फोटो लाइब्रेरी" फ़ंक्शन लेते हुए, यह चित्र में ले जाने पर चित्र या ले जाने पर छवि को किनारे पर ले जाता है। मेरा वर्तमान अपलोड फ़ंक्शन यहां है। किसी भी सुराग/दूसरों के पास iPhones/मोबाइल फ़ोन से मोबाइल वेब अनुप्रयोगों को एक SharePoint लाइब्रेरी में अपलोड करने के समान समस्याएं थीं?मोबाइल फोन से एंगुलर पर अपलोड की गई छवि

यहाँ मेरी अपलोड समारोह है:

// Upload of images 
    $scope.upload = function() { 
     //console.log($scope.files); 
      if (document.getElementById("file").files.length === 0) { 
       alert('No file was selected'); 
       return; 
      } 
      var parts = document.getElementById("file").value.split("\\"); 
      var uploadedfilename = parts[parts.length - 1]; 
      var basefilename = uploadedfilename.split(".")[0]; 
      var fileextension = uploadedfilename.split(".")[1]; 
      var currentdate = new Date(); 
      var formatteddate = $filter('date')(new Date(currentdate), 'MMddyy-hmmssa'); 
      var filename = basefilename + formatteddate + '.' + fileextension; 
      var file = document.getElementById("file").files[0]; 
      uploadFileSync("/sites/asite", "Images", filename, file); 
     } 

     //Upload file synchronously 
    function uploadFileSync(spWebUrl, library, filename, file) 
    { 
      console.log(filename); 

      var reader = new FileReader(); 
      reader.onloadend = function(evt) 
      { 
       if (evt.target.readyState == FileReader.DONE) 
       { 
        var buffer = evt.target.result; 
        var completeUrl = spWebUrl 
         + "/_api/web/lists/getByTitle('"+ library +"')" 
         + "/RootFolder/Files/add(url='"+ filename +"',overwrite='true')?" 
         + "@TargetLibrary='"+library+"'&@TargetFileName='"+ filename +"'"; 

        $.ajax({ 
         url: completeUrl, 
         type: "POST", 
         data: buffer, 
         async: false, 
         processData: false, 
         headers: { 
          "accept": "application/json;odata=verbose", 
          "X-RequestDigest": $("#__REQUESTDIGEST").val(), 
          "content-length": buffer.byteLength 
         }, 
         complete: function (data) {  
          console.log(data); 
         }, 
         error: function (err) { 
          alert('failed'); 
         } 
        }); 

       } 
      }; 
      reader.readAsArrayBuffer(file); 
     } 

इन के उत्पादन में सिर्फ एक कोणीय यूआई Carousel में इस्तेमाल के लिए एक सरणी में धकेल दिया जाता है:

// Control of Image Carousel 
    $scope.myInterval = 0; 

// Population of carousel 
$scope.slides = []; 

    appImages.query({ 
     $select: 'FileLeafRef,ID,Created,Title,UniqueId', 
     $filter: 'ReportId eq ' + $routeParams.Id + ' and DisplayinReport eq 1', 
    }, function (getimageinfo) { 
     // Data is within an object of "value" 
     var image = getimageinfo.value; 

     // Iterate over item and get ID 
     angular.forEach(image, function (imagevalue, imagekey) { 

      $scope.slides.push({ 
       image: '/sites/asite/Images/' + imagevalue.FileLeafRef, 
      }); 
     }); 
    }); 

छवि हिंडोला के रूप में इस पृष्ठ पर है :

<div style="height: 305px; width: 300px"> 
       <carousel interval="myInterval"> 
        <slide ng-repeat="slide in slides" active="slide.active"> 
         <img ng-src="{{slide.image}}" style="margin:auto;height:300px"> 
         <div class="carousel-caption"> 
          <h4>Slide {{$index}}</h4> 
          <p>{{slide.text}}</p> 
         </div> 
        </slide> 
       </carousel> 
      </div> 

महत्वपूर्ण: छवि शेयरपॉइंट लाइब्रेरी पर अपलोड करने के दौरान किनारे और ऊपर की तरफ हैं, इसलिए उन्हें आउटपुट करने के बावजूद, वे गंतव्य लाइब्रेरी पर क्लिक करते समय गलत तरीके से प्रतीत होते हैं, मैं पृष्ठ पर प्रदर्शित करने के लिए स्रोत के रूप में उपयोग कर रहा हूं।

मैं छवियों को कैसे अपलोड करूं ताकि शेयरपॉइंट EXIF ​​डेटा/अभिविन्यास का सम्मान करे?

+0

आप सर्वर पक्ष का उपयोग कर रहे हैं? –

उत्तर

6

यह EXIF ​​से संबंधित हो सकता है। JS Client-Side Exif Orientation: Rotate and Mirror JPEG Images

यदि आप एक बेहतर उत्तर चाहते हैं, तो हमें उस कोड की आवश्यकता होगी जो छवि दिखाती है, और कोड सर्वर पक्ष।

अद्यतन: मैं शेयरपॉइंट पर बिल्कुल विशेषज्ञ नहीं हूं, लेकिन आप SharePoint Stack Exchange में इसके बारे में बहुत कुछ पा सकते हैं। उदाहरण के लिए, https://sharepoint.stackexchange.com/questions/131552/sharepoint-rotating-pictures-in-library, चाल चलाना चाहिए।

थोड़ा सा योग करने के लिए: आपके मामले में, उनके अध्ययन के लिए कई मामले हो सकते हैं। इसलिए, मैंने अनुशंसा की है कि आप exif को स्वतः सही करें, और उसके बाद ऑटो-सही गलत होने पर अपने उपयोगकर्ता को इसे सही करने की अनुमति दें। ऐसा करने के लिए उनके बहुत सारे उपकरण हैं। यदि आप इसे सर्वर-साइड करना चाहते हैं, तो ऊपर दिए गए लिंक को देखें, और यदि आप इसे क्लाइंट साइड पर करना चाहते हैं, तो आप उदाहरण के लिए JS-Load-Image का उपयोग कर सकते हैं।

+1

इसे किसी SharePoint छवि लाइब्रेरी पर अपलोड किया जा रहा है। तो मुझे यकीन नहीं है कि इसे कैसे प्रस्तुत करना सबसे अच्छा है। – Kode

+0

कृपया, अपनी पोस्ट अपडेट करें, और उल्लेख करें कि यह SharePoint (टैग भी) के बारे में भी है। मैंने इस जानकारी के साथ अपना जवाब अपडेट किया। – noelmace

+0

मैंने अपनी पोस्ट अपडेट की है और EXIF ​​में देख रहा हूं। महान अंतर्दृष्टि – Kode

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