Remkomplekty.ru

IT Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Application vnd openxmlformats officedocument spreadsheetml sheet

Установка типа mime для документа excel

MS Excel имеет следующие наблюдаемые типы MIME:

  • application/vnd.ms-excel (официальный)
  • application/msexcel
  • application/x-msexcel
  • application/x-ms-excel
  • application/x-excel
  • application/x-dos_ms_excel
  • application/xls
  • application/x-xls
  • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (XLSX-файл)

Есть ли какой-то один тип, который будет работать для всех версий? Если нет, то нужно ли устанавливать response.setContentType() для каждого из этих типов mime отдельно?

Кроме того, мы используем потоковую передачу файлов в нашем приложении для отображения документа (а не только excel — любого типа документа). При этом, как мы можем сохранить имя файла, если пользователь решает сохранить файл — в настоящее время имя сервлета, который отображает файл, отображается как имя по умолчанию.

7 Ответов

Я считаю, что стандартный тип MIME для файлов Excel — это application/vnd.ms-excel .

Что касается названия документа, то в ответе следует задать следующий заголовок:

Здесь я вижу просыпающуюся старую нить, но я почувствовал желание добавить формат «new» .xlsx.

Согласно http://filext.com/file-extension/XLSX расширение для .xlsx равно application/vnd.openxmlformats-officedocument.spreadsheetml.sheet . Это может быть хорошей идеей, чтобы включить его при проверке на наличие типов mime!

Вы всегда должны использовать тип ниже MIME, если вы хотите обслуживать файл excel в формате xlsx

Я устанавливал тип MIME из кода .NET, как показано ниже —

Мое приложение генерирует excel, используя OpenXML SDK. Этот тип MIME работал —

Для .xls используйте следующий тип содержимого

Для версии Excel 2007 и выше формат файлов .xlsx

Я использую EPPlus для создания файла .xlsx (на основе формата OpenXML) excel. Для отправки этого файла excel в качестве вложения в email я использую следующий тип MIME, и он отлично работает с EPPlus сгенерированным файлом и правильно открывается в MS-outlook mail client preview.

Для тех, кто все еще спотыкается с этим после использования всех возможных типов MIME, перечисленных в вопросе:

Я обнаружил, что iMacs, как правило, также бросает MIME тип «text/xls» для файлов XLS Excel, надеюсь, это поможет.

Похожие вопросы:

Таким образом, в CouchDB вы можете предположительно изменить типы mime. В футоне вам просто нужно пойти и отредактировать источник документа и изменить поле content_type на вложения в поле.

Невозможно получить тип MIME из bytearray-возвращает NULL для любого документа типа MIME. byte[] res.

Как я могу установить правильный тип MIME, который работает с excel 2007? прямо сейчас у меня есть это: header(Content-type: application/vnd.ms-excel; charset=UTF-8); мой браузер постоянно говорит.

Проверка типа mime в php довольно проста, но, насколько я знаю, mime можно подделать. Злоумышленник может загрузить сценарий php, например, с типом jpeg mime. Одна вещь, которая приходит на ум, это.

Я пытаюсь развернуть сайт Jekyll. Вот вам и поток: Содержимое добавляется и перемещается в BitBucket BitBucket трубопровод строит сайт Находит все файлы HTML в _site/ и удаляет их расширение.

Кроме LSCopyDefaultApplicationURLForURL существует LSCopyApplicationURLsForURL , чтобы получить все приложения, а не только один по умолчанию. Если вы просто хотите получить приложения по умолчанию.

Я хочу написать excel и отправить его пользователю в качестве ответа в приложении с помощью Play framework 1.x . Но я не уверен, как установить ответ content-type/MIME-type для возврата doc или.

Для веб-приложения, которое позволяет просматривать документы в браузере, я хотел бы проверить, поддерживает ли браузер пользователя предварительный просмотр текущего типа mime документа. Существует.

Существует ли официальный URN для типа MIME? Mozilla Firefox и другие приложения используют обозначения типа urn:mimetype:text/plain или urn:mimetype:handler:text/plain . Есть две проблемы с этим.

Package Structure

A SpreadsheetML or .xlsx file is a zip file (a package) containing a number of «parts» (typically UTF-8 or UTF-16 encoded) or XML files. The package may also contain other media files such as images. The structure is organized according to the Open Packaging Conventions as outlined in Part 2 of the OOXML standard ECMA-376.

You can look at the file structure and the files that comprise a SpreadsheetML file by simply unzipping the .xlsx file.

The number and types of parts will vary based on what is in the spreadsheet, but there will always be a [Content_Types].xml, one or more relationship parts, a workbook part , and at least one worksheet. The core data of the spreadsheet is contained within the worksheet part(s), discussed in more detail at xsxl Content Overview.

Content Types

Every package must have a [Content_Types].xml, found at the root of the package. This file contains a list of all of the content types of the parts in the package. Every part and its type must be listed in [Content_Types].xml. The following is a content type for the main content part:

It’s important to keep this in mind when adding new parts to the package.

Relationships

Every package contains a relationships part that defines the relationships between the other parts and to resources outside of the package. This separates the relationships from content and makes it easy to change relationships without changing the sources that reference targets.

For an OOXML package, there is always a relationships part (.rels) within the _rels folder that identifies the starting parts of the package, or the package relationships. For example, the following defines the identity of the start part for the content:

There are also typically relationships within .rels for app.xml and core.xml.

In addition to the relationships part for the package, each part that is the source of one or more relationships will have its own relationships part. Each such relationship part is found within a _rels sub-folder of the part and is named by appending ‘.rels’ to the name of the part.

Typically the main content part (workbook.xml) has its own relationships part (workbook.xml.rels). It will contain relationships to the other parts of the content, such as sheet1.xml, sharedStrings.xml, styles.xml, theme1,xml, as well as the URIs for external links.

A relationship can be either explicit or implicit. For an explicit relationship, a resource is referenced using the Id attribute of a element. That is, the Id in the source maps directly to an Id of a relationship item, with an explicit reference to the target.

For example, a worksheet might contain a hyperlink such as this:

The r_id=»rId4″ references the following relationship within the relationships part for the worksheet (worksheet1.xml.rels).

For an implicit relationship, there is no such direct reference to a Id . Instead, the reference is understood.

Parts Specific to SpreadsheetML Documents

Below is a list of the possible parts of a SpreadsheetML package that are specific to SpreadsheetML spreadsheets. Keep in mind that a spreadsheet may only have a few of these parts. For example, if a spreadsheet has no pivot table, then a pivot table part will not be included in the package.

When the values of cells are calculated from formulas, the order of calculation can be affected by the order in which the values are calculated. This part contains specifies the ordering. A package can contain only one such part.

Contains a chart that is stored in its owne sheet. A package can contain multiple such parts, referenced from the workbook part.

Contains the comments for a given worksheet. Since there may be more than one worksheet, there may be more than one comments part.

A spreadsheet may have connections to external data sources. This part contains such connections, explaining both how to get such externnal data and how the connection is used within the workbook. There may be only one such part.

Читать еще:  Office 2020 ошибка 1935

Contains user-defined data. There may be zero or more such parts.

Contains a schema for an XML file, and information on the behavior to be used when allowing the schema to be mapped into the spreadsheet. There may be only one such part.

Contains information about a legacy customer dialog box for a user form. There may be zero or more such parts.

Contains the presentation and layout information for one or more drawing elements that are present in the worksheet. There should be drawings part for each worksheet that has a drawing.

Contains information about data referenced in other spreadsheet packages. For example, a spreadsheet may have a cell whose value is calculated from data in another spreadsheet. There may be zero or more such parts.

Contains information relating to a cell whose value is related to one or more other cells via Online Analytical Processing (OLAP) technology.

Contains the definition of a pivot table. It describes the particulars of the layout of the pivot table, indicating what fields are on the row axis, the column axis, and values areas of the pivot table. And it indicates formatting for the pivot table. There is a pivot table part for each pivot table within the package.

The pivot table cache definition defines each field in the pivot cache records part (i.e., the underlying data), including field name and information about the data contained in the field. There is a pivot table cahe definition part for each pivot table within the package.

Contains the underlying data for a pivot table. There will be zero or one such part for each pivot table in the package.

Contains information that describes how the source table is connected to an external data source and defines the properties that are used when the table is refreshed from the source. There may be one such part for each table.

Contains one occurrence of each unique string that occurs in any worksheet within the workbook. There is one such part for a package.

Contains information about edits performed on individual cells in the workbook’s worksheets. There should be one such part for each editing session

Contains a list of all users that are sharing the workbook. A package contained zero or one such part.

Contains information on how to map non-repeating elements from a custom XML file into cells in a worksheet. There may be one such part per worksheet.

Contains all the characteristics for all cells in the workbook, including numeric and text formatting, alignment, font, color, and border. A package contains no more than one such part.

A spreadsheet can contain regions that have clearly labeled columns, rows, and data regions. Such regions are called tables, and each worksheet can have zero or more tables. For each table in a worksheet there must be a table definitions part containing a description of the table. (The data for the table is stored in the corresponding worksheet part.)

Cells can contain real-time data formulas that return values that change over time and that require connectivity to programs outside of the workbook. In cases where those programs are not available, the formulas can use information stored in the volatile dependencies part. A package can have only one such part.

Contains data and references to all of the worksheets. There must be one and only one workbook part.

Contains all the data, formulas, and characteristics of a given worksheet. There is one such part for each worksheet in the package.

Parts Shared by Other OOXML Documents

There are a number of part types that may appear in any OOXML package. Below are some of the more relevant parts for SpreadsheetML documents.

Contains a complete package, either internal or external to the referencing package. For example, a SpreadsheetML document might contain a Wordprocessing or PresentationML document.

Contains properties specific to an OOXML document—properties such as the template used, the number of pages and words, and the application name and version.

Core file properties enable the user to discover and set common properties within a package—properties such as creator name, creation date, title. Dublin Core properties (a set of metadate terms used to describe resources) are used whenever possible.

Spreadsheets often contain images. An image can be stored in a package as a zip item. The item must be identified by an image part relationship and the appropriate content type.

DrawingML is a shared language across the OOXML document types. It includes a theme part that is included in SpreadsheetML documents when the spreadsheet uses a theme. The theme part contains information about a document’s theme, that is, such information as the color scheme, font and format schemes.

Файлы MS Office «изнутри». Open Packaging Conventions. Базовые принципы. Компоненты и связи

Сегодняшним постом я хочу начать еще одну серию. В ней я планирую немного поговорить о том, что представляют собой файлы MS Office “изнутри”, а также об инструментах (утилитах и библиотеках) для их создания, изучения, изменения, …

Прежде чем перейти к содержательной части некоторый предваряющий disclaimer (традиционно ):

Я в основном буду касаться современных офисных форматов, тех что появились в редакции Office 2007. Их еще называют XML-based форматами, в противовес старым бинарным (и это закрепилось в расширении файлов: docx, pptx, xlsx, … – в противовес doc, ppt, xls, …), ну или просто Open XML

Некоторая часть статей (по крайней мере в самом начале) будет основана на материалах Open XML Developer Workshop (контент и видео), который вел Doug Mahugh. Если вам не хочется ждать моих статей рекомендую обратиться к этим материалам

Еще одним хорошим подспорьем для изучающих Open XML будет книга Воутер Ван Вугт. OpenXML. Кратко и доступно. Ранее она в электронном виде была доступна в блоге евангелиста Microsoft Владимира Габриеля, но теперь – увы. Так что, если вам интересно и не хочется тратить время на поиск, можете взять здесь.

Вроде бы все. Можно приступать.

Что такое Open Packaging Conventions?

В двух словах, это формат контейнеров, поддерживающих хранение как структурированных (XML), так и неструктурированных компонентов (картинки, видео, бинарные компоненты, …) в одном файле.

Краткая но довольно информативная статья об OPC есть на wikipedia.

Что можно сказать в общем об этом стандарте/формате? Я бы выделил такие моменты:

● Формальное описание является частью ECMA-376. Office Open XML File Formats, более конкретно – второй частью Part 2 — Open Packaging Conventions.

● Сам стандарт описывает только структуру хранения и самые общие метаданные (типа автора, даты,…) поэтому потенциально в таком контейнере можно хранить практически что угодно.

Например, вот несколько форматов, основанных на OPC от самого Microsoft:

o .docx, pptx, xlsx, .vsdx – форматы Word, Power Point, Excel и Visio

o .xps (.oxps) – формат “электронной бумаги” или формат c фиксированной разметкой, предназначенный для передачи документов без искажения форматирования (в чем-то аналог PDF).

o .vsix – формат расширений Visual Studio, начиная с версии 2010

o .cspkg – формат пакетов для Windows Azure Cloud Services

o .appx – формат пакетов приложений Windows Store (для Windows 8)

Что представляют собой контейнеры в OPC?

Тут нужно сделать одну существенную оговорку: сам стандарт разбивает описание контейнеров на 2 части: абстрактную модель (которая описывает из каких элементов состоят контейнеры, но ни слова не говорит о том как это должно храниться физически) и физический формат пакета, т.е. конкретную реализацию.

Читать еще:  Microsoft office 2020 professional ключик активации

Т.е. в чистой теории, контейнер в OPC может храниться единый файл, а может, например, как набор отдельных ресурсов на Web-сервере. Но (!) на текущий момент определена только 1 реализация – в виде единого файла ZIP-архива.

Структура контейнеров в OPC

Вообще говоря, концептуальная схема пакетов в Open Packaging Conventions очень проста, она включает в себя всего два элемента:

компоненты (parts), которые собственно и содержат хранящийся контент (любой: xml, image, video, …)

отношения (relationships), которые определяют

o предназначение (смысл/семантику) каждой части

o отношения между частями, а также между частями и пакетом целиком

Компоненты

Как уже было сказано выше компонент в OPC это и есть основная единица хранения контента. Каждый компонент характеризуется 2-я составляющими: именем и типом содержимого.

Имя компонента состоит из набора сегментов, начинающихся с прямого слэша (“/”), вот несколько примеров:

В спецификации приведены более формальные правила построения имен, из которых я укажу только основные (на мой взгляд):

● все имена должны начинаться с прямого слэша (“/”) и не должны им заканчиваться

● имя недолжно содержать пустых сегментов (т.е. /images//image1.jpg – неправильное имя)

«, «:«, «@»

● ни одно имя компонента не должно строиться как имя уже существующего компонента + новый сегмент. Т.е. если есть компонент с именем /abc/abc, то компонент с именем /abc/abc/a существовать не может, зато вполне может существовать компонент с именем /abc/abcde

● имена могут записываться Unicode-символами или использовать кодирование в виде /a/%D1%86.xml

Тип содержимого компонента задается в соответствии с RFC 2616 (раздел Media Types) т.е. в виде / :

Связи

Любой компонент в пакете (а также сам пакет) может ссылаться на другие компоненты или некоторые ресурсы за пределами пакета. Для представления этих ссылок введен специальный механизм связей. По большому счету, связи позволяют решить 2 задачи:

● получить список связанных с компонентом ресурсов, без необходимости анализировать его содержимое (которое может быть очень большим, иметь разную структуру, быть зашифрованным или вообще не поддерживать хранение ссылок)

● поменять набор связей компонента, не меняя его содержимого (которое может быть, например, зашифровано или защищено цифровой подписью)

Создавая свой пакет вы, конечно же, можете не использовать связи. Вместо этого везде в коде использовать фиксированные имена компонент, а где нужны списки связанных ресурсов, ссылаться на них прямо из самих компонент. Однако, рекомендации “лучших собаководов” все же советуют использовать связи везде, где это возможно.

Информация о связях для каждого компонента (а также самого пакета), хранится в специальных компонентах связей (relationships parts) тип содержимого которых application/vnd.openxmlformats-package.relationships+xml

Имена компонентов связи строятся из имени исходных компонент, к которым:

● добавляется предпоследний сегмент с именем _rels

● дописывается “расширение” .rels

Связи самого пакета хранятся в специальном компоненте с именем /_rels/.rels

Например, если в пакете у нас есть компонент с именем /document/mainPart.xml и два связанных компонента с картинками (пусть их мена будут /images/image1.png и /images/image2.jpeg), то пакет для них будет иметь следующую структуру:

Содержимое компонента связи представляет собой XML следующего формата:

Как уже наверняка понятно из приведенного фрагмента, каждый тэг определяет одну связь. Его атрибуты:

Id

Идентификатор связи. На него ссылаются из содержимого компонент, когда необходимо использовать конкретную связь.

Type

Тип связи. По сути дела тип указывает семантику связи. Например, две разных связи могут указывать на 2 компонента типа image/jpeg, но одно изображение будет картинкой в тексте документа, а второе – миниатюрой (thumbnail) всей страницы целиком.
В качестве типа может использоваться любой валидный URI

TargetMode

(Необязательный) Принимает одно из возможных значений:

· Internal (значение по умолчанию) – указывает, что связь ссылается на компонент пакета

· External – связь указывает на ресурс за пределами пакета

Target

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

Важный момент: для обращения к компонентам и внешним ресурсам можно использовать как абсолютные адреса (для компонент это будет их полное имя), так и относительные. В последнем случае полное имя компоненты рассматривается как путь в файловой системе, каждый сегмент, кроме последнего – имя “папки”, а последний – имя “файла”. Вот несколько примеров такой адресации:

Имя исходного компонента

Относительный адрес

Результирующий адрес

Вот, по большому счету и все, что касается модели пакета в OPC. Осталось сказать несколько слов о физической реализации пакетов

Пакеты на основе ZIP-архивов

Как уже было сказано выше, в спецификации OPC определена только одна реализация пакетов – на основе ZIP архивов. Она достаточно проста, поэтому я приведу её обзорно:

● все компоненты, как обычные, так и компоненты связей, хранятся в виде одного или нескольких файлов внутри архива (при этом логически они все равно адресуются как единое целое)

● для хранения типа контента каждого компонента в архиве создается специальный файл с именем [Content_Types].xml

Внутри файла [Content_Types].xml хранится XML следующего вида:

Собственно, общая схема, я думаю, понятна и так: для описания типов используется два подхода:

● указание типа по расширению (тэг )

● явное указание типа для конкретного компонента (тэг )

Как заглянуть внутрь OPC-пакета?

Итак, надеюсь вас уже заинтриговало мое объяснение базовых принципов и вы уже жаждите приступить к практическому изучению (т.е. взять и разобрать по косточкам какой-нибудь офисный файл) .

Вот несколько способов как это можно сделать:

Прямой (“рукопашный”) способ. Т.к. физическая реализация OPC есть ни что иное, как обычный ZIP-архив, то самый простой способ его изучить – распаковать и работать как с обычной папкой (ну или воспользоваться любимым архиватором).

o Плюс подхода – будете глубже понимать устройство.

▪ Сложно отслеживать связи между компонентами (а именно они образуют структуру, а вовсе не “папки” архива)

▪ Довольно муторно редактировать, если захочется экспериментов (нужно добавлять файлы для компонентов, править файлы связей да еще и не забывать про указание типа контента, если он не стандартный)

Open XML Package Editor Power Tool for Visual Studio 2010. Расширение для Visual Studio. Умеет открывать файлы в формате OPC, показывать и редактировать их логическую структуру (добавлять/удалять/редактировать компоненты и связи). Для редактирования содержимого компонент используется редакторы самой VS, что очень удобно для экспериментов (XML редактор в VS явно не самый плохой, особенно если в наличии есть хорошие XSD-описания).

▪ Так и не нашел способа создать пакет с 0 (но это редко нужно, да и обходится созданием пакета вручную).

▪ Требует Visual Studio.

▪ Работает только в 2010 версии VS. Увы, для более новых версий студии пакет так и не обновился, хотя почти наверняка он заработает без доработок в любой последующей. А доработать установщик пакета руками не получается, т.к. это не обычный vsix

Standalone приложение от Воутера Ван Вугта Open XML Package Explorer. По возможностям оно близко к предыдущему расширению для VS, но не требует ничего для установки, кроме .Net 3.0. У него даже есть встроенный редактор XML, правда уступающий редактору от VS. К сожалению, приложение давно не обновлялось имеет ряд неприятных ошибок… но пользоваться можно.

Пара слов в заключение

Как видите, стандарт OPC в своей основе довольно прост и функционален. Однако остались еще ряд нераскрытых тем. В частности мы не рассмотрели ряд возможностей, заложенных в формат OPC:

● базовые метаданные пакета (core properties)

● иконки пакета (thumbnails)

● цифровые подписи (digital signatures)

Ну и, конечно, мы еще ни слова не проговорили об API для работы с OPC пакетами.

What is correct content-type for excel files?

I want excel files on a website to open in Excel when clicked, not get saved on desktop, or get opened embedded in a browser etc. Now obviously it all depends on how everything is configured for each user, but what’s the best Content-Type and other settings to achieve just that most of the time?

Читать еще:  Как установить ключ gvlk office 2020

Создан 30 май. 10 2010-05-30 03:54:47 taw

Although this is a duplicate, I think it should be kept around as a pointer to the linked duplicate. The titles are sufficiently different. – John Saunders 06 ноя. 14 2014-11-06 01:16:48

3 ответа

For BIFF .xls files

For Excel2007 and above .xlsx files

Создан 30 май. 10 2010-05-30 10:15:46 Mark Baker

This does not work for me when using IE9. Chrome, Opera, Safari, Firefox — no problem. But IE fails to recognize the ‘Content-type’ and I have checked with the debugger in IE to confirm that the Content-type is ‘application/vnd.ms-excel’. I have also tested lower/upper cased headers. Anyone experienced this? – luttkens 24 сен. 13 2013-09-24 19:29:10

@luttkens — That’ll be an issue with the combination of headers that you send, these are still the valid Content Types for Excel files – Mark Baker 24 сен. 13 2013-09-24 19:30:53

@MarkBaker You’re right. When I removed ‘Content-Disposition: attachment; filename=’foo.xls» it worked. But it doesn’t really make me like IE. – luttkens 24 сен. 13 2013-09-24 19:37:41

For anyone out there wondering: by removing the single-quotes around foo.xls from the ‘Content-Disposition’ even IE will recognize how to open it. – luttkens 24 сен. 13 2013-09-24 19:42:25

Hi, do you know the Content-Type of .xlsx files generated by Google Docs? I’ve tried your answer but no luck. – pikachu0 17 мар. 14 2014-03-17 09:55:26

I had an issue where I could not open this file type after downloading it programmatically. Basically it would save the file correctly, but when I did response.Transmitfile(..filepath..) where filepath was a legit filepath to a non-corrupted excel file, it would return a corrupted file. Changing response.ContentType from «plain/text» to «application/nvd.ms-excel» fixed it. – Lukas 18 мар. 14 2014-03-18 20:58:49

.docx is worse application/vnd.openxmlformats-officedocument.wordprocessingml.document – mkz 15 июн. 14 2014-06-15 14:59:57

what is content type for office 365 excel files ? – GANI 23 сен. 14 2014-09-23 17:20:46

@user1016740 Office 365 files are OfficeOpenXML-format .xlsx files, so it’s ‘application/vnd.openxmlformats-officedocument.spreadsheetml.sheet’ – Mark Baker 23 сен. 14 2014-09-23 17:52:45

(+1) With Mac system ,if you are getting additional (.xls) ,Then adding the second content type (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet ) will fox it – Confused 27 янв. 16 2016-01-27 07:05:02

@Confused — a ___second___ Content Type will simply overwrite the first, you can only have single content type header – Mark Baker 27 янв. 16 2016-01-27 07:52:42

@MarkBaker I mean second line (i.e.application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) of the above answer, rather then first one(application/vnd.ms-excel). – Confused 27 янв. 16 2016-01-27 12:15:21

Thanks for Nice answer BTW 🙂 – Confused 27 янв. 16 2016-01-27 12:31:00

Why do they use such an ugly thing as this? – Hinrich 14 мар. 16 2016-03-14 15:58:22

@Hinrich — because those ugly things tell the browser how to handle the data that you’re sending it – Mark Baker 14 мар. 16 2016-03-14 16:01:19

For those who are ignorant like me and weren’t really sure what BIFF is, the following may help *»XLS is the file extension of the Microsoft Excel spreadsheet. It is created in the versions of Excel prior to 2007. It is a binary format based upon Binary Interchange File Format (BIFF) and thus it stores information in binary format.»* – Steve Chambers 31 окт. 16 2016-10-31 09:58:57

many thank s. – elle0087 16 ноя. 17 2017-11-16 15:27:18

Загружать файлы xls или xlsx с помощью codeigniter, mime-type error

Ну, я считаю, что это не проблема Codeigniter как таковая, поскольку это скорее тип mime .

Я пытаюсь загрузить файл, файл xls (или xlsx), а mime-тип – браузер, а отчет php – это приложение / октет-поток вместо приложения / excel , application / vnd.ms-excel или application / msexcel для файла xls. Разумеется, модуль плагина codeigniter сообщит об ошибке (недопустимый тип файла), поскольку он пытается сопоставить расширение файла с типом mime.

Странным (est) может быть то, что тот же самый код работал месяцами и теперь перестал работать с последними браузерами Chrome (16.0.912.77), Firefox (10.0) и IE9.

У кого-то была такая же (или аналогичная) проблема и помощь в решении проблемы?

Большое спасибо. PS: Я не буду предоставлять код, так как это не вопрос кода, но при необходимости я загружу некоторые фрагменты.

РЕДАКТИРОВАТЬ

Это может иметь значение: ошибка не возникает с теми же браузерами в аналогичной конфигурации, но с MS Office вместо Libre Office (на моем компьютере). Это не происходит в системе на базе Linux + Libre. SO, может ли это быть Windows-играми в комплекте с открытым исходным кодом, или Libre Office меняет типы mime только для этого?

Я тоже получаю эту ошибку.

CI сообщает о типе файла «application / zip», который имеет смысл, так как формат xlsx является сжатым форматом (переименуйте его в zip, и вы можете открыть его содержимое).

Я добавил / заменил следующую строку в файл типов mime (application / config / mimes.php):

и это работает (для этого браузера хотя бы!)

Пожалуйста, ознакомьтесь со следующим описанием и подсказкой и получите ответ легко!

Описание:

Фактически, многие из них рекомендовали добавить / заменить следующую строку в файле (application / config / mimes.php):

Но я понял, что в CodeIgniter Version 2.2. * Проблема немного другая! Они уже добавили эту строку, но забыли добавить следующий «file_type» ==> ‘application / vnd.ms-excel’

Поэтому добавив вышеприведенное «application / vnd.ms-excel» в массив типа xlsx , позвольте мне загрузить файлы .xlsx !

Подсказка:

Всякий раз, когда вы получаете следующую ошибку, на платформе CodeIgniter и загружаете файлы:

Тип файла, который вы пытаетесь загрузить, не разрешен.

Сделайте следующее в методе загрузки вашего контроллера,

И это даст вам огромный массив, который вы можете получить по этой ссылке . (Пожалуйста, посмотрите на конец этой страницы). В этом массиве вы можете получить то, что является реальным mime_type файла, который вы пытаетесь загрузить, но не позволяете загружать.

Ответ:

В моем случае расширение файла было .xlsx , а типом mime было application / vnd.ms-excel , которое не было добавлено в

Поэтому я добавил его вручную, и после этого он работает VERRY WELL .

То же самое случилось с загрузкой CSV еще раз, когда я проверил расширение файла .csv, но тип mime был text / plain , когда я добавил его в следующую строку:

и сохраняется следующим образом,

Отлично работает! : D Попробуйте, если вы найдете что-то новое в вышеуказанных шагах, прокомментируйте здесь . Поэтому, надеясь, что это будет полезно для всего сообщества CodeIgniter, я отправил его на некоторое время!

С наилучшими пожеланиями, ребята,

Это было ошибкой CI несколько месяцев назад: https://github.com/EllisLab/CodeIgniter/issues/394 . mimes.php в рамках был обновлен, и ошибка была решена. Обновите библиотеку CodeIgniter до версии 2.1.0 (или новее).

Также хорошей проверкой / дампом является ваш тип mime сервера.

Другой альтернативой является принудительный тип mime. С .htaccess это будет

Для целого отладочного приключения протестируйте различные офисные файлы с помощью get_mime_by_extension($file) с помощью File Helper (http://codeigniter.com/user_guide/helpers/file_helper.html)

Только для записей, я нашел причину, mime-type отсутствовал в реестре Windows, решил добавить эти ключи с REG-файлом:

Но предпочел бы использовать вышеприведенные решения, мне не нравится возиться с реестром.

Ссылка на основную публикацию
Adblock
detector