작성
·
2.3K
0
안녕하세요
장고와 웹사이트 개발이 아예 처음인 신입개발자입니다.
주 개발 업무는 아닌데 웹 사이트 구축이 필요해서 문의드립니다.
해야하는건 웹사이트에서 웹서버에 있는 파일을 다운로드 하는 건데
도저히 개념이 안서서요..
사용툴은 장고입니다.
질문은 다음과 같습니다.
웹서버에 파일을 올리는 방법이 궁금합니다
올린 파일마다 url이 따로 존재하는 건가요?
웹서버는 어떤걸 사용해야하나요?
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
파일 다운로드는 웹페이지에서 사용자에게 파일을 제공하는 것을 의미합니다. 사용자는 파일을 다운로드 받기 위해서는 웹페이지에서 제공하는 링크를 클릭하면 됩니다.
파일을 웹서버에 올리기 위해서는 FTP(File Transfer Protocol)를 사용하여 파일을 업로드할 수 있습니다. 또는 cPanel과 같은 웹 호스팅 대시보드에서 파일을 업로드할 수도 있습니다. 업로드된 파일은 각각의 URL을 가지며, 사용자는 해당 URL을 통해 파일을 다운로드 받을 수 있습니다.
장고에서 파일 다운로드를 구현하려면 FileResponse
를 사용하면 됩니다. FileResponse
는 파일 객체를 받아서 파일을 다운로드받을 수 있는 HttpResponse
객체를 반환합니다. 예를 들어, 아래와 같은 코드로 PDF 파일을 다운로드할 수 있습니다.
from django.http import FileResponse
import os
def download_pdf(request):
file_path = os.path.join(BASE_DIR, 'media', 'file.pdf') # 파일경로 설정
if os.path.exists(file_path):
with open(file_path, 'rb') as fh:
response = FileResponse(fh.read(), as_attachment=True)
response['Content-Disposition'] = 'attachment; filename=' + os.path.basename(file_path)
response['Content-Type'] = 'application/pdf'
return response
raise Http404 # 파일이 존재하지 않는 경우
위 코드에서 FileResponse
를 이용해 파일 객체를 불러온 후, 다운로드 받을 수 있도록 as_attachment=True
를 설정하고, Content-Disposition
헤더에 파일 이름을 지정해줍니다.
마지막으로, 웹서버는 Apache나 NGINX 등의 웹서버를 사용할 수 있습니다. 하지만 해당 문제는 호스팅 서비스나 서버 구축 방법에 대한 지식이 필요하기 때문에, 자세한 설명은 생략하겠습니다.
도움이 되었길 바랍니다. 감사합니다 :)