Tôi có một đoạn mã nhận tệp từ biểu mẫu qua POST.Chỉ cần lưu tệp vào thư mục trong Django
file = request.FILES['f']
Điều gì sẽ là cách đơn giản nhất của tiết kiệm tập tin này vào thư mục phương tiện truyền thông của tôi trong
settings.MEDIA_ROOT
tôi đang tìm kiếm tại this answer, trong số những người khác, nhưng tôi có lỗi đề cập đến tên undefined và khối không hợp lệ" " phương pháp.
Phải có cách đơn giản để thực hiện việc này?
EDIT phương pháp Tải lên trong views.py tôi:
def upload(request):
folder = request.path.replace("/", "_")
uploaded_filename = request.FILES['f'].name
# create the folder if it doesn't exist.
try:
os.mkdir(os.path.join(settings.MEDIA_ROOT, folder))
except:
pass
# save the uploaded file inside that folder.
full_filename = os.path.join(settings.MEDIA_ROOT, folder, uploaded_filename)
fout = open(full_filename, 'wb+')
file_content = ContentFile(request.FILES['f'].read())
# Iterate through the chunks.
for chunk in file_content.chunks():
fout.write(chunk)
fout.close()
là lưu nó trong cơ sở dữ liệu một lựa chọn? Các giải pháp được đăng mà bạn cho là có vẻ đúng. Bạn có thể gửi thông báo lỗi không? Bạn đã đọc bài đăng thứ hai để trả lời - nó nói về lỗi chunck và cách sửa lỗi –
Vui lòng xem các chỉnh sửa của tôi, bây giờ tôi nhận được "tên toàn cầu 'ContentFile' không được xác định" – Jon
Bạn có thể tìm thấy nó trong [django. core.files] (https://docs.djangoproject.com/en/1.7/ref/files/file/#the-contentfile-class) Thư viện –