如何在Django中上传任何类型的文件?
我想接受用户的任何类型的文件,并将其保存在数据库中。我使用以下代码:
在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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我在表单标签中添加了“ Enctype =“ Multipart/form-data”,并且工作正常。
I have added "enctype="multipart/form-data" In form tag and it's working fine.