Django最简单的方法是在不使用模型的情况下将文件保存到磁盘上的文件夹

时间:2018-04-05 17:15:16

标签: python django file-upload upload

我试图将文件从上传文件直接保存到我的文件夹媒体/文件,完全按照thread中的说明进行。

这是我的表单代码:

from django import forms

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

这是我的观看代码:

def uploadview(request):
    if request.method == 'POST':
        form=UploadForm(request.POST, request.FILES)
        if form.is_valid() and request.FILES['file']:
            uploaded_filename=request.FILES['file'].name
            full_filename=os.path.join('media', 'files', uploaded_filename)
            fout=open(full_filename, 'wb+')
            file_content=ContentFile(request.FILES['file'].read())
            for chunk in file_content.chunks():
                fout.write(chunk)
            fout.close()
            return HttpResponseRedirect('/App/')
    else:
        form=UploadForm()

    return render(request, 'App/uploads.html', {'form':form})

我没有错误,只是重定向到/ App /页面并且没有下载任何文件。我的目标是无法在磁盘上完成文件 就像你可以用这个简单的命令在PHP中做的那样。

move_uploaded_file(($_FILES["filetoupload"]["tmp_name"]), $target_file)

1 个答案:

答案 0 :(得分:1)

请记住在表单中设置enctype,例如:

enctype="multipart/form-data"

如果我尝试上传文件并且没有看到它,通常会忘记这一点,但不会出现任何错误。

这里有一个很好的django文件上传参考:

https://simpleisbetterthancomplex.com/tutorial/2016/08/01/how-to-upload-files-with-django.html