0

파이썬 포스터 라이브러리를 사용하여 이미지가 포함 된 양식을 서블릿에 업로드하려고합니다. 로컬에서는 괜찮 았지만 앱 엔진에 배포 할 때 멀티 파트 콘텐츠로 인식하지 못합니다.python 포스터 라이브러리를 사용하는 동안 isMultipartContent = false 가져 오기

ServletFileUpload.isMultipartContent (요청) 여기에 거짓

를 반환 내가 포스터 라이브러리를 사용하고 있습니다 방법은 다음과 같습니다

register_openers() 
datagen, headers = multipart_encode({"image": open(filename)}) 
request = urllib2.Request(url, datagen, headers) 

서블릿 검사가 여러 부분입니다 확인하지만, 그 검사를 실패합니다. 추가 디버깅을하려면 어떻게해야합니까?

감사합니다, 진

******* 갱신 ********* 스택 추적을 인쇄는 ... 여기에 내가 무엇을 얻을. 콘텐츠 형식 헤더가 isnull입니다.

org.apache.commons.fileupload.FileUploadBase $ InvalidContentTypeException : 요청에 multipart/form-data 또는 multipart/mixed 스트림이 없으며 콘텐츠 형식 헤더가 org에서 입니다. (FileUploadBase.java:885) at org.apache.commons.fileupload.FileUploadBase.getItemIterator (FileUploadBase.java:349) at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest (ServletFileUpload.java:126)

답변

0

Windows (또는 pedan t ;-), open(filename)은 이진 파일을 여는 잘못된 방법이며 일을 망칠 수도 있습니다. open(filename, 'rb')을 사용하십시오. 그 외에도 생략 한 urllib2.urlopen(request)을 계속 사용하고 import이 올바른지, filenameurl이 올바르게 설정되었다고 가정하면 코드가 적합하다고 판단됩니다.

+0

팁 주셔서 감사합니다. 예, urllib2.urlopen (request)을 따라 갔고 다른 모든 것은 올바르게 설정되었고 appengine 앱을 로컬에서 실행할 때 예상대로 실행됩니다. 전개되면 서블릿에 부딪치지 만 서블릿은 멀티 파트인지 확인하기 때문에 요청을 거부합니다. – jeanh

+0

@jeanh, 그 수표가 정확한지 궁금하다 - 서블릿에서 정확한 바이트 스트림을 (파일, 로그, 무엇이든간에) 가져 와서 보낼 수 있고 보낸 메시지와 다른 점을 알 수 있습니까? ? –

+0

도 로컬에서 실행할 때 request.getContentType이 정상적으로 보입니다. 앱 엔진에 배포하면 null입니다. – jeanh

관련 문제