2014-10-28 1 views
3

ColdFusion 10에 문제가 있습니다. 코드 이 작동했는데이 작동했는데 어디에서 코드가 잘못되었는지 모르겠습니다. 이 지역에서 몇 달 동안 바뀌지 않았습니다.CSV의 Coldfusion 업로드가 mime 유형 'text/plain'과 함께 mime 유형 오류를 반환합니다.

<cffile action="upload" filefield="fileLocation" 
    destination="#destination#" 
    nameConflict="Overwrite" 
    accept="application/vnd.ms-excel,text/csv" 
    result="upload"> 

내가 업로드하고 있습니다 .csv 파일이 있습니다

나는이처럼 보이는 CFFILE 있습니다.

방화범
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. 

, 이것에 대한 인터넷 항목의 포스트 부분은 다음과 같습니다 : 내가 오류이 (다음 cfcatch.message 사용 및 cfcatch.detail 사용)입니다

Content-Disposition: form-data; name="fileLocation"; filename="myfilename.csv" 
Content-Type: application/vnd.ms-excel 

내가 걸릴 경우 멀리 = ""속성을 동의 한 후 # 업로드 #의하는 cfdump을, 내가 얻을 :

CONTENTSUBTYPE vnd.ms-excel 
CONTENTTYPE  application 

또는, 즉, CF는 응용 프로그램/vnd.ms-엑셀 화재를 받고있다 여우는 보내고있다. 그리고 아직. 파생되는 MIME 형식은 text/plain입니다.

파일을 확인했습니다. 파일은 이전에 업로드 한 것과 같은 CSV 형식입니다. 파일 이름을 .txt로 변경 한 다음 .csv로 다시 변경했습니다. 확장 기능 관련 문제가 발생한 경우를 대비하여. 같은 오류. 파일을 열지 않았 음을 확인했습니다.

내 사용자가 프로덕션 서버를 사용하여이 문제를 해결합니다. 우리 개발 서버를 사용하고 있습니다. 따라서 그것이 무엇이든, 그것은 단일 서버에만 국한되지 않습니다.

텍스트/일반이 왜 나오는지 이해하는 사람이 있습니까? 응용 프로그램/옥텟 스트림을 얻는다면 그것을 막연하게 이해할 것입니다. text/plain은 단지 혼란 스럽습니다.

+1

하십시오. 내가 한 일은'text/plain'을 허용 된 MIME 유형으로 추가 한 다음 확장자가'csv'라는 체크를 추가하는 것입니다. –

+1

어쨌든 "허용"대신보다 안전한 대안을 사용하는 것이 좋습니다. Mime 유형은 쉽게 스푸핑 될 수 있습니다. [ColdFusion으로 안전한 파일 업로드를위한 팁] (http://www.petefreitag.com/item/701.cfm)을 참조하십시오. +1 문구를 잘 연구하고, 질문. – Leigh

+0

Leigh CF 10에서 새로운 것 같습니다. 나는 브라우저의 POST 처리 정보에 의존하기보다는 CF10과 11이 정보를 얻기 위해 실제 파일 헤더를보고 있다고 생각합니다. csv 파일은 자연스럽게 텍스트/일반 어로 자신을보고 할 수 있습니까? –

답변

0

솔루션 :

<cffile> 태그에 엄격한 = "거짓"의 속성을 넣습니다.

기본값이 false라고해도 기본값을 사용하는 대신 strict를 사용하십시오. 다른 CF10 변경 CFFILE하는

또한이 검토 : 그것은 가치가 무엇인지 우리 CF9 서버가 CF11로 업그레이드했을 때, 내가 같은 일에 달려 https://wikidocs.adobe.com/wiki/display/coldfusionen/cffile