【发布时间】:2017-12-30 17:23:52
【问题描述】:
我的应用需要在静态文件夹内的不同文件夹中上传不同的头像。 还有一件事,我没有使用模型,我只是想把我在html输入文件中选择的图片复制到特定的文件夹中。
这是我的文件夹树。我要保存上传的图像的位置是MYPROJECTFOLDER/static/profile/<TheUserSpecificFolder>/,那是我不想使用MEDIA_ROOT 的位置,因为在媒体根目录中我无法为每个用户创建一个特定的文件夹。 (我不知道这是否正确,是否有一种方法可以在不使用ImageField 或FileField 的情况下为/media/ 文件夹中的每个用户创建特定文件夹,请告诉我)。
这是我的文件夹树:
MYPROJECTFOLDER
|
|------myproject/
|
|------myapp/
|
|------static
| |-------profile
| |------folder_user1
| |------ uploadedpicture.jpg #Here is where I want to upload
| |------folder_user2
这是我的uploadpic.html
<form action="{% url 'upload' %}" enctype="multipart/form-data" method="POST">
{% csrf_token %}
<input type="file" name="avatar" accept="image/gif, image/jpeg, image/png">
<button type="submit">Upload</button>
</form>
这是我的 views.py
from django.shortcuts import render, HttpResponse, redirect
from . import forms
import os
def upload(request):
img = request.FILES['avatar']
#This just create the folder where I want to save the image.
if not os.path.exists('static/profile/' + str(request.session['user_id'])):
os.mkdir('static/profile/' + str(request.session['user_id']))
#NOW HERE IS WHERE I WANT TO WRITE THE CODE THAT SAVE THE IMAGE INTO THE FOLDER I JUST CREATED
return redirect('companyedit')
【问题讨论】:
-
为什么不能像在静态目录中一样在媒体目录中创建文件夹?此外,使用相对路径可能会在某些时候失败(即,如果/当您部署代码时)。
标签: python django python-3.6 image-upload django-uploads