Django 前端上传图片文件 后端获取文件 并存储

本文介绍了如何在Django项目中实现前端上传图片文件,后端接收到文件后进行处理并存储。首先,前端表单需设置enctype为"multipart/form-data"以支持文件上传。接着,配置settings.py文件以允许文件上传。最后,通过views.py编写逻辑,处理POST请求,接收文件并完成存储操作。
摘要由CSDN通过智能技术生成
前端
  • form表单提交文件,需要加上 enctype=“multipart/form-data”
<form method="post" enctype="multipart/form-data" action="">

   <div class="form-group">
        <label for="icon_input">头像</label>
        <input name="avatar" type
首先,需要在前端创建一个表单,用于上传图片。 ```html <form method="POST" enctype="multipart/form-data"> {% csrf_token %} <input type="file" name="image"> <button type="submit">上传图片</button> </form> ``` 然后,在后端的视图函数中,可以通过 `request.FILES` 获取上传的文件对象,并使用 `FileSystemStorage` 存储到指定的文件夹中。 ```python from django.shortcuts import render from django.core.files.storage import FileSystemStorage def upload(request): if request.method == 'POST': uploaded_file = request.FILES['image'] fs = FileSystemStorage() filename = fs.save(uploaded_file.name, uploaded_file) return render(request, 'upload.html', {'filename': filename}) return render(request, 'upload.html') ``` 在上面的代码中,`request.FILES` 是一个 `django.core.files.uploadedfile.InMemoryUploadedFile` 或 `django.core.files.uploadedfile.TemporaryUploadedFile` 对象的字典,可以通过 `name` 属性获取上传的文件名,通过 `read()` 方法读取文件内容。 `FileSystemStorage` 是 Django 提供的一个文件系统存储类,可以将文件存储到本地文件系统中。在默认情况下,存储位置是 `MEDIA_ROOT` 设置的文件夹,可以在 `settings.py` 中进行配置。例如: ```python MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/' ``` 最后,需要在模板中显示上传的图片,可以使用 `MEDIA_URL` 和 `filename` 拼接出图片的 URL,然后在 `<img>` 标签中展示。 ```html {% if filename %} <img src="{{ MEDIA_URL }}{{ filename }}" alt="上传的图片"> {% endif %} ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值