バイトストリームとDropbox APIを使用したdocxファイルの破損

私たちには、ユーザーが自分のDropboxアカウントにファイルをアップロードできるWebアプリケーションがあります。このWebアプリケーションは、Dropbox APIを使用してアップロード処理を容易にします。アップロード後、ユーザーがファイルタイプ.docxを表示しようとすると、「コンテンツに問題があるため、somefile.docxファイルを開くことができません」というメッセージが表示されます。

ここでは、使用しているコードの一部を示します。

最初に、ファイルをbyte []に​​変換してAPIメソッド呼び出しに渡します。

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 "";
        }
    }

APIからの応答は {"勝者!"} また、Dropboxに送られる前にbyte []が破損していないことを確認しました。

Then when a user tries to open the file either by downloading it from the website or just viewing the file directly from the Dropbox folder, they get this error message. enter image description here

これは.xlsx(Excel 2007 - up)ファイルでも起こります。 Dropbox APIによってDropboxフォルダにアップロードされると、.docxおよび.xlsxファイルが破損していますか?どんな助けでも大歓迎です。

6
* .txtのような "シンプルな"ファイルの場合もそうですか?
追加された 著者 BennoDual,
元のファイルとDropboxのファイルを比較するとどうなりますか?変更はどこにありますか?終わり?最初は?
追加された 著者 Pablo Montilla,
Pablo、私は元のファイルとDropboxのファイルを比較するためにWinmergeを使いました。 .docx形式または.xml形式で比較すると違いがあるようですが、違いはちょうどスタイルに見えます。また、RestSharpのRestClientオブジェクトを使用してHTTPリクエストを送信していることにも言及したいと思います。 asihttprequestがiOS上で広く使われているように.netで広く使われているので、うまく動作すると思います。
追加された 著者 Dun,
Pablo、元のファイルとDropboxのファイルのファイルの違いを調べました。 Dropbox内のファイルは最後の行の最後にcrlfがあります。元のファイルには最後の行の最後には何もありません。
追加された 著者 Dun,
誰でも、C#サードパーティ製SDKの使用方法に関する実例やチュートリアルを持っていますか? dropbox.com/developers/reference/sdk ?私はまだドロップボックスの残りのAPIを使用してドロップボックスにアップロードされたMicrosoft Office 2007 - 2010ファイルを正しく表示することができません。
追加された 著者 Dun,
Pablo、このオープンソースライブラリ "DropNet"を使用するようにコードを更新しました。このライブラリは、更新されたRestSharp dllを使用しています。これは余分なキャリッジリターンを削除したようです。元のファイルとアップロードされたファイルを比較すると、WinMergeによると同じです。アップロードされたファイルを表示すると、ダイアログウィンドウ(上のスクリーンショット)が表示されます。 [OK]をクリックすると、別のダイアログウィンドウが表示されます。はいをクリックすると、ファイルが正しく表示されます。ただし、Document1 [互換モード]として開きます。誰もがDropnetライブラリを使って作業しようとしましたか?どんな助けでも大歓迎です。
追加された 著者 Dun,

1 答え

.docxファイルと他のOffice 2007ファイルタイプには、この問題がオンラインであります。サーバーのMIMEタイプを確認しましたか(編集 - サーバーを中間で使用している場合)

0
追加された