Abbiamo un'app Web che consente agli utenti di caricare file nel proprio account Dropbox. Questa app Web utilizza l'API Dropbox per facilitare il processo di caricamento. Dopo il caricamento, quando un utente prova a visualizzare il tipo di file .docx fornisce un messaggio, "Il file" somefile.docx "non può essere aperto perché ci sono problemi con il contenuto".corruzione del file docx tramite flusso di byte e API Dropbox
Ecco parte del codice che stiamo usando:
In primo luogo, stiamo convertendo il file in un byte [] e passandolo nella chiamata metodo 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 "";
}
}
La risposta dal api è { "Winner!"} Abbiamo inoltre verificato che il byte [] non sia danneggiato prima di essere inviato a Dropbox.
Quindi, quando un utente tenta di aprire il file scaricandolo dal sito Web o semplicemente visualizzando il file direttamente dalla cartella Dropbox, riceve questo messaggio di errore.
Questo problema si verifica anche per i file .xlsx (Excel 2007-up). I file di tipo .docx e .xlsx sono danneggiati quando vengono caricati nella cartella Dropbox dall'API Dropbox? Qualsiasi aiuto molto apprezzato.
Questo è anche il caso di file "semplici" - come * .txt? – BennoDual
Cosa succede quando confronti il file originale con il file in dropbox? Dove sono le modifiche? Fine? L'inizio? –
Pablo, ho usato Winmerge per confrontare il file originale e il file in dropbox. Sembra che ci sia una differenza quando li confronto in forma .docx o .xml ma la differenza sembra essere solo stile. Inoltre volevo dire che sto usando l'oggetto RestClient di RestSharp per inviare richieste http. Suppongo che funzioni bene perché è ampiamente utilizzato in .net proprio come la domanda di asilo è ampiamente utilizzata su iOS. – Dun