Повреждение файла docx с помощью байтового потока и API Dropbox

У нас есть веб-приложение, которое позволяет пользователям загружать файлы в свою учетную запись Dropbox. Это веб-приложение использует API Dropbox для облегчения процесса загрузки. После загрузки, когда пользователь пытается просмотреть тип файла .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: {"Winner!"} Мы также проверили, что байт [] не поврежден, прежде чем он будет отправлен в Dropbox.

Затем, когда пользователь пытается открыть файл, загружая его с веб-сайта или просто просматривая файл прямо из папки Dropbox, он получает это сообщение об ошибке. enter image description here

Это происходит для .xlsx (Excel 2007 - более поздняя версия). Файлы типа .docx и .xlsx повреждаются, когда они загружаются в папку Dropbox с помощью Dropbox API? Любая помощь очень ценится.

6
задан Jason 28 October 2011 в 17:37
поделиться