【问题标题】:Django file uploads - Just can't work it outDjango文件上传 - 只是无法解决
【发布时间】:2010-04-13 20:16:54
【问题描述】:

好的,我放弃了——在尝试获取 django 表单来上传文件 5 个小时后,我检查了 stackoverflow 中的所有链接,并用谷歌搜索和搜索。为什么这么难,我只想让它像管理文件上传一样工作?

所以我知道我需要这样的代码:

            if submitForm.is_valid():
                  handle_uploaded_file(request.FILES['attachment'])
                  obj = submitForm.save()

我可以在 request.FILES['attachment'] 中看到我的文件(是的,我设置了 enctype)但是我应该在 handle_uploaded_file 中做什么?这些示例都有一个固定的文件名,但显然我想将文件上传到我在模型中定义的目录,但我看不到在哪里可以找到它。

def handle_uploaded_file(f):
  destination = open('fyi.xml', 'wb+')
  for chunk in f.chunks():
    destination.write(chunk)
  destination.close()

我敢打赌,当有人指出显而易见的事情时,我会感到非常愚蠢!

【问题讨论】:

    标签: django django-forms upload


    【解决方案1】:

    这就是我的做法:

    def handle_uploaded_file(f, instance):
        instance.field.save('name_slug.ext', f, True)
        instance.save()
    

    【讨论】:

    • 为了清楚起见,这是我保存的名为“attachment1”的字段的行,实例是 comm。 comm.attachment1.save(request.FILES['attachment1']._name, request.FILES['attachment1'], True)
    • handle_uploaded_file 的第二个参数是什么?这个答案只会让我更加困惑。
    【解决方案2】:
    def handle_uploaded_file(f, filename):
      destination = open(filename, 'wb+')
      for chunk in f.chunks():
        destination.write(chunk)
      destination.close()
    

    或者我错过了什么?

    【讨论】:

    • 从哪里获得我放入模型中的“upload_to”?还是我需要在函数中定义路径?
    猜你喜欢
    • 1970-01-01
    • 2011-06-27
    • 2017-01-11
    • 1970-01-01
    • 2011-03-11
    • 2022-08-23
    • 2015-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多