2011-10-27 20 views
6

का उपयोग करते हुए docx फ़ाइल भ्रष्टाचार हमारे पास एक वेब ऐप है जो उपयोगकर्ताओं को अपने ड्रॉपबॉक्स खाते में फ़ाइलों को अपलोड करने की अनुमति देता है। यह वेब ऐप अपलोड प्रक्रिया को सुविधाजनक बनाने के लिए ड्रॉपबॉक्स एपीआई का उपयोग करता है। अपलोड करने के बाद, जब कोई उपयोगकर्ता फ़ाइल प्रकार को देखने का प्रयास करता है .docx यह एक संदेश देता है, "फ़ाइल" somefile.docx "को खोला नहीं जा सकता क्योंकि सामग्री में समस्याएं हैं"।बाइट स्ट्रीम और ड्रॉपबॉक्स एपीआई

सबसे पहले, हम एक बाइट [] के लिए फ़ाइल को परिवर्तित करने और यह एपीआई विधि कॉल में से गुजर रहे हैं:

यहाँ कोड हम प्रयोग कर रहे हैं में से कुछ है।

public static string DropboxUpload(byte[] DBbyte, string filename, string token, string tokensecret) 
    { 
     try 
     { 
      for (int i = 0; i < 4; i++) 
      { 
       var dropclient = new RestClient(FILEURL); 
       dropclient.ClearHandlers(); 
       dropclient.AddHandler("*", new JsonDeserializer()); 

       dropclient.BaseUrl = FILEURL; 
       dropclient.Authenticator = new OAuthAuthenticator(dropclient.BaseUrl, API_KEY, API_SECRET, token, tokensecret); 

       var request = new RestRequest(Method.POST); 
       request.Resource = VERSION + "/files/dropbox" + PATH; 
       request.AddParameter("file", filename); 

       request.AddFile(new FileParameter { Data = DBbyte, FileName = filename, ParameterName = "file" }); 

       var response = dropclient.Execute(request); 

       if (response.StatusCode == HttpStatusCode.OK) 
        break; 
       else 
        Thread.Sleep(1000); 
      } 

      string dropboxLink = GetPublicLinks(filename, token, tokensecret); 
      dropboxLink = dropboxLink.Replace("\"", ""); 
      return dropboxLink; 
     } 
     catch 
     { 
      return ""; 
     } 
    } 

एपीआई से प्रतिक्रिया है { "विजेता!"} हम यह भी सत्यापित किया है कि बाइट [] यह ड्रॉपबॉक्स में भेजने से पहले दूषित नहीं है।

तब जब कोई उपयोगकर्ता वेबसाइट से इसे डाउनलोड करके फ़ाइल को खोलने का प्रयास करता है या फ़ाइल को सीधे ड्रॉपबॉक्स फ़ोल्डर से देखता है, तो उन्हें यह त्रुटि संदेश मिलता है। enter image description here

यह .xlsx (एक्सेल 2007 - अप) फ़ाइलों के लिए भी हो रहा है। ड्रॉपबॉक्स एपीआई द्वारा ड्रॉपबॉक्स फ़ोल्डर में अपलोड किए जाने पर .docx और .xlsx प्रकार की फ़ाइलें दूषित हो रही हैं? किसी भी मदद की बहुत सराहना की।

+1

क्या यह "सरल" फ़ाइलों के साथ भी मामला है - जैसे * .txt? – BennoDual

+1

क्या होता है जब आप फ़ाइल के साथ मूल फ़ाइल की तुलना ड्रॉपबॉक्स में करते हैं? परिवर्तन कहां हैं? समाप्त? शुरुवात? –

+0

पाब्लो, मैंने मूल फ़ाइल और ड्रॉपबॉक्स में फ़ाइल की तुलना करने के लिए विनमेर का उपयोग किया। ऐसा लगता है कि जब मैं उन्हें किसी भी .docx रूप या .xml रूप में तुलना करता हूं लेकिन अंतर केवल शैली जैसा प्रतीत होता है। इसके अलावा मैं यह उल्लेख करना चाहता था कि मैं http अनुरोध भेजने के लिए RestSharp की RestClient ऑब्जेक्ट का उपयोग कर रहा हूं। मुझे लगता है कि यह ठीक काम करता है क्योंकि यह व्यापक रूप से .NET में उपयोग किया जाता है जैसे कि आईश पर व्यापक रूप से एसिटप्रक्वेस्ट का उपयोग किया जाता है। – Dun

उत्तर

0

.docx फ़ाइलें और अन्य कार्यालय 2007 फ़ाइल प्रकारों में यह समस्या ऑनलाइन है। क्या आपने अपने सर्वर एमआईएमई प्रकारों को चेक किया है (संपादित करें - अगर यह आपके सर्वर को बीच में उपयोग करता है)?

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