为什么Django上传文件到服务器失败

问题描述 投票:0回答:1
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' [2024年3月5日19:32:40]“发布/panpep/HTTP/1.1”500 67598

这似乎是由于某种冲突,如何解释这种现象以及我如何解决它。

提前致谢!

django web python-webbrowser
1个回答
0
投票

在 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+')
© www.soinside.com 2019 - 2024. All rights reserved.