У нас есть веб-приложение, которое позволяет пользователям загружать файлы в свою учетную запись Dropbox. Это веб-приложение использует Dropbox API для упрощения процесса загрузки. После загрузки, когда пользователь пытается просмотреть тип файла .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 "";
}
}
Ответ от API
{"Победитель!"}
Мы также убедились, что байт [] не поврежден перед отправкой в Dropbox.
Затем, когда пользователь пытается открыть файл, загружая его с веб-сайта или просто просматривая файл непосредственно из папки Dropbox, он получает это сообщение об ошибке.
Это также касается файлов .xlsx (Excel 2007 - up).
Файлы типа .docx и .xlsx повреждаются при загрузке в папку Dropbox API Dropbox? Любая помощь с благодарностью.