У меня проблемы с ColdFusion 10. Код работает, я не уверен, что где изменилось — сам код в этой области не менялся месяцами.
У меня есть cffile, который выглядит так:
<cffile action="upload" filefield="fileLocation"
destination="#destination#"
nameConflict="Overwrite"
accept="application/vnd.ms-excel,text/csv"
result="upload">
У меня есть файл .csv, который я загружаю. Я получаю следующую ошибку (cfcatch.message, а затем cfcatch.detail):
The MIME type or the Extension of the uploaded file text/plain was
not accepted by the server.
Only files of type application/vnd.ms-excel,text/csv can be uploaded.
Verify that you are uploading a file of the appropriate type.
В Firebug часть Post записи Net для этого выглядит следующим образом:
Content-Disposition: form-data; name="fileLocation"; filename="myfilename.csv"
Content-Type: application/vnd.ms-excel
Если я уберу атрибут accept="" и затем сделаю cfdump #upload#, я получу:
CONTENTSUBTYPE vnd.ms-excel
CONTENTTYPE application
Или, другими словами, CF получает приложение/vnd.ms-excel, которое отправляет Firefox. И все еще. Тип пантомимы, который он получает, - text/plain.
Я проверил файл - он в формате CSV, тот же самый, который был загружен раньше. Я переименовал файл в .txt, а затем обратно в .csv, на случай, если проблема связана с расширением. Та же ошибка. Я проверил, что у меня нет открытого файла.
Мой пользователь использует наш рабочий сервер, чтобы попробовать это. Я использую наш сервер разработки. Так что что бы это ни было, это не относится к одному серверу.
Кто-нибудь понимает, почему он работает с текстом/обычным? Я бы смутно понял это, если бы он получал application/octet-stream; text/plain просто... сбивает с толку.
text/plain
в качестве разрешенного типа MIME, а затем добавил проверку того, что расширение былоcsv
. - person Fish Below the Ice   schedule 28.10.2014strict="false"
? Если это работает, то Марк, вероятно, прав в том, что изменение в поведении принятия является причиной того, что это не сработало. - person Leigh   schedule 03.11.2014