【问题标题】:Django save uploaded file to diskDjango 将上传的文件保存到磁盘
【发布时间】:2018-09-14 12:36:53
【问题描述】:

我正在尝试将文件保存到磁盘,而不是在课堂上或任何直接保存到磁盘的文件,但我终生无法弄清楚如何。

到目前为止,我得到了:

查看:`

def uploadview(request):
    uploadtestvar='Uploadpage!'
    request.session['test']='Is this working?'
    if request.method == 'POST':
        form=UploadForm(request.POST, request.FILES)
        if form.is_valid():
            forcetitle='test'
            try:
                pass
            except:
                pass
            return HttpResponseRedirect('/test/')
    else:
        form=UploadForm()

    return render(request, 'test/uploads.html',{'uploadtestvar':uploadtestvar, 'form':form})`

表单直接从 Django 窃取:

from django import forms

class UploadForm(forms.Form):
    title=forms.CharField(max_length=50)
    file=forms.FileField()

我已经搜索了无数线程,但没有找到一个足够简单的示例来让我理解如何将该 request.FILES['file'] 保存到磁盘的某个位置。可能的文件类型是 png、jpg 和 pdf。

【问题讨论】:

  • @dirkgroten 我确实看到了那个例子,但问题是我不想将它保存到模型中,而是直接保存到磁盘位置。
  • 但这是官方Django documentationFileField的基本例子,你看了吗? (见handle_uploaded_file方法!)

标签: python django file-upload upload


【解决方案1】:

在 FileSystemStorage 具有存储目录​​的模型中,将 FileSystemStorage 传递给 FileField

from django.core.files.storage import FileSystemStorage

fs = FileSystemStorage(location = 'media/files/')

class UploadModel(models.Model):
    title=forms.CharField(max_length = 50)
    file=forms.FileField(storage = fs)

【讨论】:

    猜你喜欢
    • 2013-12-26
    • 2016-07-22
    • 2013-12-19
    • 2010-09-23
    • 2010-11-08
    • 2021-11-03
    • 2019-10-30
    • 2018-01-13
    • 1970-01-01
    相关资源
    最近更新 更多