Хранение документов Excel/Word Файлы хранилища BLOB-объектов Windows Azure повреждены

Мы начали использовать API хранилища BLOB-объектов Azure для хранения загруженных BLOB-объектов на нашем сайте, изображения работали нормально, но когда мы загружаем документ Word/Excel и возвращаем URL-адрес и пытаемся загрузить файл с этого URL-адреса и открыть его, мы получаем ошибка в Excel или Word:

«Excel не может открыть файл «somefile.xlsx», поскольку формат или расширение файла недопустимы. Убедитесь, что файл не поврежден и что расширение файла соответствует формату файла».

Я знаю, что должен упустить что-то очевидное, но не уверен, что именно, ниже приведен код, который мы используем:

  CloudBlobContainer container = GetCloudBlobContainer();

  Guid guid = Guid.NewGuid();
  string storeFilename = String.Concat(mediaType.ToString(), "/", guid, "_", filename);

  var blob = container.GetBlobReference(storeFilename);
  blob.Properties.ContentType = contentType;
  blob.UploadFromStream(stream);

  return blob.Uri.AbsolutePath;

Мы возвращаем URL-адрес и сохраняем его для загруженного файла и используем его в качестве ссылки для загрузки файла.

Файл загружается нормально, имеет тот же размер, что и загруженный, но не открывается.

Любая помощь будет принята с благодарностью, поскольку это должно быть что-то настолько очевидное, но, боюсь, это ускользает от меня.


person user351711    schedule 22.10.2012    source источник


Ответы (1)


Какой код вы используете для сохранения документа в Azure?

Каково значение ContentType при загрузке и загрузке?

Кодируете ли вы UTF8 поток загрузки?

Взгляните на этот пример загрузки, который устанавливает ContentType и кодирует UTF8 перед загрузкой.

person halfbit    schedule 23.10.2012