如何在Django中上传任何类型的文件?

发布于 2025-01-21 15:19:29 字数 2093 浏览 3 评论 0原文

我想接受用户的任何类型的文件,并将其保存在数据库中。我使用以下代码:

在html文件中:

<input type="file" name="file_name" required>

但是,当我尝试访问 views.pys.pys.py 中的文件时,它将异常呈'file_name'

file_name = request.FILES['file_name']

在我选择一些图像时,在同一字段中。该图像存储在媒体文件夹中。

urls.py

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

settings.py

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

views.py

try:
    file_name = request.FILES['file_name']        
except Exception as e:
    print('In Exception')
    print(e)

exception 在pinting 中显示 as:

Traceback (most recent call last):
  File "C:\Python310\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Python310\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\kambl\PycharmProjects\Linkingzz - 08 Mar\Linkingzz\Linkingzz\Linkingzz\app\views.py", line 534, in article
    file_name = request.FILES['articleName']
  File "C:\Python310\lib\site-packages\django\utils\datastructures.py", line 85, in __getitem__
    raise MultiValueDictKeyError(key)
django.utils.datastructures.MultiValueDictKeyError: 'articleName'

模型。 py

class Article(models.Model):
    FileField = models.FileField(upload_to='Order - Articel Files', blank=True, null=True)
    ImageField = models.ImageField(upload_to='Order - Featured Images', blank=True, null=True)
    

    def __str__(self):
        return str(self.id)

I want to accept any type of file from the user and save it in the database. I am using following code:

In HTML file :

<input type="file" name="file_name" required>

But when I try to access the file in views.py it throws the Exception as 'file_name'.

file_name = request.FILES['file_name']

In the same field when I select some image. The image is stored in the media folder.

urls.py

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

settings.py

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

views.py

try:
    file_name = request.FILES['file_name']        
except Exception as e:
    print('In Exception')
    print(e)

Exception shows after printing In Exception as:

Traceback (most recent call last):
  File "C:\Python310\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Python310\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\kambl\PycharmProjects\Linkingzz - 08 Mar\Linkingzz\Linkingzz\Linkingzz\app\views.py", line 534, in article
    file_name = request.FILES['articleName']
  File "C:\Python310\lib\site-packages\django\utils\datastructures.py", line 85, in __getitem__
    raise MultiValueDictKeyError(key)
django.utils.datastructures.MultiValueDictKeyError: 'articleName'

models.py

class Article(models.Model):
    FileField = models.FileField(upload_to='Order - Articel Files', blank=True, null=True)
    ImageField = models.ImageField(upload_to='Order - Featured Images', blank=True, null=True)
    

    def __str__(self):
        return str(self.id)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦初启 2025-01-28 15:19:29

我在表单标签中添加了“ Enctype =“ Multipart/form-data”,并且工作正常。

<form method="POST" enctype="multipart/form-data">

I have added "enctype="multipart/form-data" In form tag and it's working fine.

<form method="POST" enctype="multipart/form-data">
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文