【问题标题】:How to manage uploaded file in django如何在 django 中管理上传的文件
【发布时间】:2017-06-16 14:53:56
【问题描述】:

我想管理(移动和重命名)用户上传的文件:

我的上传表单(html):

<form action="../valid_upload/" method="POST" enctype="multipart/form-data">
   {% csrf_token %} 
   {{form.as_p}}
   <input type="submit" name="send" value="send" />
</form>

我的表单(django 部分):

class UploadImageForm(forms.Form):
image = forms.FileField()
name = forms.CharField(max_length=100)
about = forms.CharField(widget=forms.Textarea)
taq1 = forms.CharField(max_length=100)
taq2 = forms.CharField(max_length=100)
taq3 = forms.CharField(max_length=100)

url.py(只有一行):

url(r'valid_upload/', views.valid_upload, name='valid_upload'),

和 view.py(只是其中的一部分):

if 'username' in request.session:
    if request.method == 'POST':
        if 'image' in request.FILES:
            form = UploadImageForm(request.POST, request.FILES)
            if form.is_valid():
                # Here goes the documentation code
            return HttpResponse(request.FILES['image'].content_type)
            //here i want to rename and move uploaded files
        else:
            return redirect('/upload_image')
    else:
        return redirect('/login/')

我想知道如何重命名上传的文件并将它们移动到我的目录中。如果你能帮助我:)

【问题讨论】:

    标签: python html django django-templates django-views


    【解决方案1】:

    您可以将请求数据传递给您的表单,并让表单管理您的需求。这是一个例子:

    if 'username' in request.session:
        if request.method == 'POST':
            if 'image' in request.FILES:
                form = UploadImageForm(request.POST, request.FILES)
                if form.is_valid():
                    # Here goes the documentation code
                return HttpResponse(request.FILES['image'].content_type)
                //here i want to rename and move uploaded files
            else:
                return redirect('/upload_image')
        else:
            return redirect('/login/')
    

    您也可以使用 django 模型。 这是文档: https://docs.djangoproject.com/en/1.11/topics/http/file-uploads/

    【讨论】:

    • 什么是 UploadFileForm?
    • 我正在向您展示文档示例。这就是我粘贴链接的原因。
    • Tnx 我会尽快测试它
    猜你喜欢
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 2019-08-27
    • 2017-01-12
    • 2016-09-13
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多