django에서 파일 다운로드(HttpResponse)
1582 단어 django
django에서는 주로 Http Response로 요청 결과를 브라우저에 되돌려주기 때문에 파일의 다운로드도 대상을 바꾸어 처리됩니다. 구체적인 열의 코드는 다음과 같습니다.
#
def download(request):
"""
Send a file through Django without loading the whole file into
memory at once. The FileWrapper will turn the file object into an
iterator for chunks of 8KB.
"""
# mongodb
fileid_=request.GET["fileid"]
filepath_ = ('%s/%s'%(MEDIA_ROOT, fileid_)) #
file_=TFiles.objects.get(fileid=int(fileid_))
filename_=file_.filename
filetype_=file_.filetype
if os.path.isfile(filepath_):
pass
else:
mongoLoad(fileid_)
#
def readFile(fn, buf_size=262144):# ,
f = open(fn, "rb")
while True:#
c = f.read(buf_size)
if c:
yield c
else:
break
f.close()
response = HttpResponse(readFile(filepath_), content_type='APPLICATION/OCTET-STREAM') # , ,
response['Content-Disposition'] = 'attachment; filename='+filename_.encode('utf-8') + filetype_.encode('utf-8')#
response['Content-Length'] = os.path.getsize(filepath_)#
return response
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.