2017-01-25 1 views
0

첨부 파일을 네트워크 공유로 가져 오는 프로그램이 있습니다. 싱글 파트와 멀티 파트 이메일 메시지 모두에서 작업 할 수 있습니다. 때문에 파일 이름에PDF 첨부 파일 다운로더가 base64 인코딩과 작동하지 않습니다.

Content-Type: application/pdf Content-Disposition: attachment; filename="=?utf-8?B?SW52b2ljZShzKS5wZGY=?=" Content-Transfer-Encoding: base64

이 파일 쓰기에 실패 :

은 최근으로 표시되는 mutlipart을 받았습니다. 나는 그 부분이 제대로 작동하고 파일 쓰기에 실패 생각하지만

fp = open(os.path.join(path, filename), 'wb') fp.write(part.get_payload(decode=True)) fp.close()

... 내가 방법을 잘 모르겠어요 : 여기

내가 PDF를 쓰고 있어요 코드입니다 그 파일 이름을 읽을 수있는 텍스트로 번역하십시오.

filename = part.get_filename() filename_zero, fileext =os.path.splitext(filename)
filename = str(var_seq) + "_" + filename_zero + fileext

어떤 통찰력에 감사드립니다 제가 누락로 : 저는 여기에 파일 이름을 결정하기 위해 사용하고 코드입니다.

+1

인사이트 :

다음 줄 추가 고려를 ['email.header.decode_header()'(https://docs.python.org/2/library/email.header. html # email.header.decode_header). 대안 : http://stackoverflow.com/questions/7406102/create-sane-safe-filename-from-any-unsafe-string을 고려하십시오. –

+0

'email.header.decode_header()'는 필자가 필요로하는 것입니다. 고마워요. @ Rob – AlliDeacon

답변

1

email.header.decode_header()는 내가 필요한 것입니다. 정말 고마워!

filename = part.get_filename() if decode_header(filename)[0][1] is not None: filename = str(decode_header(filename)[0][0]).decode(decode_header(filename)[0][1]) filename_zero, fileext = os.path.splitext(filename) filename = str(var_seq) + "_" + filename_zero + fileext

관련 문제