2016-08-11 2 views
0

내 주요 작업은 사용자가 다운로드 버튼을 누르고 쿼리 디렉토리에서 "A.zip"파일을 다운로드하게하는 것입니다.사용자가 장고보기에서 ZIP을 다운로드하도록 허용

이유는 "실행"버튼을 누르면 다른 조건을 확인해야하기 때문에 elif 요청 .POST .....이 있습니다. 이 실행 버튼은 스크립트를 실행합니다. POST 작업은 모두 작동하며 dir_file은 C : \ Data \ Folder입니다.

나는 장고에서 파일을 다운로드하는 방법에 대한 많은 자습서와 응답을 읽고, 간단한 코드가 파일을 다운로드하지 않는 이유를 알 수 없다.

무엇이 누락 되었습니까? 코드는 오류를 반환하지 않습니다. 아무도 내가 뭘 잘못하고 있는지 설명 할 수있는 문서가 있습니까?

파일을 자동으로 다운로드 할 것으로 예상되지만 발생하지 않습니다.

elif request.POST['action'] == 'Download': 
    query = request.POST['q'] 
    dir_file = query + "A.zip" 
    zip_file = open(dir_file, 'rb') 

    response = HttpResponse(zip_file, content_type='application/zip') 
    response['Content-Disposition'] = 'attachment; filename=%s' % 'foo_zip' 

    zip_file.close() 

답변

0

나는 내 대답을 발견했습니다.

이 기능에 대한 많은 문서를 읽은 후이 기능의 가장 중요한 부분은 URL입니다.

기본적으로 download_zip 함수는 POST에 의해 호출되고 zip이 다운로드 된 곳에서 스크립트를 실행합니다.

마지막으로
def download_zip(request): 
    zip_path = root + "A.zip" 
    zip_file = open(zip_path, 'rb') 
    response = HttpResponse(zip_file, content_type='application/zip') 
    response['Content-Disposition'] = 'attachment; filename=%s' % 'A.zip' 
    response['Content-Length'] = os.path.getsize(zip_path) 
    zip_file.close() 

    return response 

urls.py에서 :

url(r'^download/$', views.download_zip, name='download_zip'), 

elif request.POST['action'] == 'Download': 
     return(HttpResponseRedirect('/App/download')) 

보기를 만든 : 여기

는 내가하고 결국 무엇인가
관련 문제