Почему Django не удалось загрузить файл на сервер
if request.method == 'POST':
k = request.FILES
obj = request.FILES['upload']
t = int(time.time())
jobid = 'jobid'+str(t)
job_name = jobid + '_' + obj.name
print(job_name)
fr = open('prediction/PanPep/upload/' + job_name, 'wb+')
Я использовал request.FILES для получения загруженного файла и создания этого файла на моем сервере. Все было нормально, когда я загрузил первый файл. Но затем я получаю ошибку, когда нужно создать файл.
это ошибка: FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'prediction/PanPep/upload/jobid1709638360_Example_zero-shot.csv' [05/Mar/2024 19:32:40] "POST /panpep/ HTTP/1.1" 500 67598
Похоже, что это связано с каким-то конфликтом, как объяснить это явление и как его исправить.
Заранее спасибо!
В Web, не предпочтительно использовать относительные пути, так как вы не знаете, какой каталог является текущим, поэтому всегда лучше использовать абсолютные пути, В Django вы можете достичь этого, используя BASE_DIR.
Кроме того, для производственных целей лучше поместить этот путь в settings .py
UPLOADS_DIR = BASE_DIR + 'prediction/PanPep/upload/'
Затем в вашем коде,
from django.conf import settings
fr = open(settings.UPLOADS_DIR + job_name, 'wb+')
Более подробную информацию вы можете найти в этом ответе.