当用户将图像上传到网站时,会将其上传到MEDIA_ROOT中指定的位置。在我的例子中,它是一个临时文件夹(临时)MEDIA_ROOT = '/opt/myenv/temp'
。我想在用户通过登录确认其身份后,将这些图片从/opt/myenv/temp
转移到/opt/myenv/permanent
。
以下是我要遵循的步骤,我陷入了第2步,有人可以指导我:
1.将Django会话ID添加到图像名称,然后将其存储在'/opt/myenv/temp'
views.py
def store_data(request):
thumbnail = request.FILES['myfile']
file_name = thumbnail.name
thumbnail.name = file_name + '_' + request.session.session_key
u = user_info.objects.create(thumbnail=thumbnail)
models.py
class user_info(models.Model):
thumbnail = models.FileField(upload_to=get_upload_file_name)
objects = models.Manager()
def __unicode__(self):
return self.f_name
def get_upload_file_name(instance,filename):
return "temp/%s" % (filename)
2.用户登录后,我想将名称中具有相同会话ID的图像移动到新文件夹'opt/myenv/permanent'
,同时用user_name替换图像名称中的session_id
答案 0 :(得分:0)
基于code written by @banerjs,托管将文件从一个文件夹移动到另一个文件夹。
views.py
from PIL import Image
from django.conf import settings
def store_data(request):
thumbnail = request.FILES['myfile']
file_name = thumbnail.name
thumbnail.name = file_name + '_' + request.session.session_key
session_id = request.session.session_key # Add session_id to the table
request.session['s_id'] = session_id # Store session_id in session
u = user_info.objects.create(thumbnail=thumbnail, session_id=session_id)
def move_image(request):
session_id = request.session['s_id']
image = user_info.objects.get(session_id__exact=session_id)
image_path = settings.MEDIA_ROOT + str(image.thumbnail)
im = Image.open(settings.MEDIA_ROOT + str(image.thumbnail))
newpath = 'permanent/' + str(image.thumbnail).split('/', 1)[1]
im.save(settings.MEDIA_ROOT + newpath)
r = user_info_confirmed.objects.create(thumbnail=newpath)
models.py
class user_info(models.Model):
thumbnail = models.FileField(upload_to="temp/")
session_id = models.CharField(max_length =100, blank=True, null=True)
objects = models.Manager()
class user_info_confirmed(models.Model):
thumbnail = models.FileField(upload_to="permanent/")
objects = models.Manager()
答案 1 :(得分:-1)
@ server您必须将权限“a + RW”授予 / opt / myenv / temp 和 / opt / myenv / permanent 。然后按照以下链接。
http://docs.nullpobug.com/django/trunk/django.core.files.move-module.html