карупцыя DOCX файл, выкарыстоўваючы паток байтаў і Dropbox API

У нас ёсць вэб-дадатак, якое дазваляе карыстальнікам загружаць файлы на Dropbox рахунак. Гэта вэб-дадатак выкарыстоўвае API Dropbox для палягчэння працэсу загрузкі. Пасля загрузкі, калі карыстальнік спрабуе праглядзець тып файла .docx гэта дае паведамленне «Файл" somefile.docx "не можа быць адкрыты, таму што ёсць праблемы з утрыманнем».

Вось некаторыя з кода, які мы выкарыстоўваем:

Па-першае, мы канвертуючы файл у байт [] і перадаць яго ў выклік метаду 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 "";
        }
    }

Адказ ад АФІ { "Пераможца!"} Мы таксама пераканаліся, што байты [] не пашкоджаны перад яго адпраўкай у Dropbox.

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 - да) файлаў, а таксама. Файлы тыпу .docx і фармат XLSX ў цяперашні час пашкоджаны, калі яны будуць загружаныя ў тэчку Dropbox па API Dropbox? Любая дапамога вельмі шануецца.

6
Гэта таксама выпадак з «простымі» файламі - як * .txt?
дададзена аўтар BennoDual, крыніца
Што адбываецца, калі вы параўноўваеце зыходны файл з файлам ў раздатачным? Дзе змены? Канец? Пачатак?
дададзена аўтар Pablo Montilla, крыніца
Пабла, я выкарыстаў Winmerge параўнаць зыходны файл і файл у Dropbox. Там, здаецца, розніца, калі я параўноўваю іх у любой форме .docx ці XML-формы, але розніца, як уяўляецца, толькі стыль. Акрамя таго, я хацеў бы адзначыць, што я выкарыстоўваю аб'ект RestClient RestSharp для адпраўкі запытаў HTTP. Я мяркую, што добра працуе, таму што ён шырока выкарыстоўваецца ў .net гэтак жа, як asihttprequest шырока выкарыстоўваецца прашыўкай.
дададзена аўтар Dun, крыніца
Пабла, мы глядзелі на розніцу ў файл паміж зыходным файлам і ў раздатачнай. Файл ў раздатачным мае CRLF ў канцы радка на апошнюю радок, дзе ў якасці зыходнага файла не мае ніякага дачынення ў канцы апошняй радкі.
дададзена аўтар Dun, крыніца
Хто-небудзь ёсць працоўны прыклад ці падручнік пра тое, як выкарыстоўваць C# трэцяй партыі SDKs прапанаваны тут dropbox.com/распрацоўшчыкі/спасылка/SDK ? Я да гэтага часу не ў стане правільна прагляду Microsoft Office 2007 - 2010 файлаў, якія былі загружаны на Dropbox, выкарыстоўваючы раздаткавую REST API.
дададзена аўтар Dun, крыніца
Паб, мы абнавілі наш код, каб выкарыстоўваць гэтую адкрытую зыходную бібліятэку «DropNet» Гэтая бібліятэка выкарыстоўвае абноўлены DLL RestSharp. Гэта, здаецца, выдалілі дадатковы зварот карэткі. Калі я раблю адрозненні на зыходны файл і загружаны файл, яны ідэнтычныя ў адпаведнасці з WinMerge. Пры праглядзе файла, які быў загружаны, з'явіцца дыялогавае акно (вышэй скрыншота). Калі я націскаю ОК, з'явіцца яшчэ адно дыялогавае акно. Калі я націскаю Так, я атрымліваю файл адлюстроўваўся правільна! Аднак ён адкрываецца Document1 [Рэжым сумяшчальнасці]. Хто-небудзь спрабаваў працаваць з бібліятэкай Dropnet? Любая дапамога вельмі шануецца.
дададзена аўтар Dun, крыніца

1 адказы

.docx файлы і іншыя тыпы файлаў Office 2007 маюць гэтае пытанне ў Інтэрнэце. Правяралі Ці вы сервер тыпаў MIME (рэдагаванне - калі ён выкарыстоўвае сервер як прамежкавы)?

0
дададзена