前端显示图片加token

项目开发中,用户权限验证场景比较常见, 但是给图片加验证该如何做呢?这里给出两个思路.

1- 改造用户身份验证方法,通过URL方式传token. 一般情况下用户token是放在header中的,但是img标签无法配置header,这是图片加token令人头疼的地方. 如果把token放在URL中,在返回图片地址时拼接上token即可.

2- 图片转换为Base64. img标签可以直接在src中配置Base64编码后的图片,而获取Base64可以采用常用的异步方法访问,从而进行header中的token验证.

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要在前端创建一个表单,用于上传图片。 ```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 %} ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值