最近,写一个上次文件的django。死活传不过去。html
在大神的帮助下面,最终仍是成。 不过也发现一个问题:django
django 官网文档:https://docs.djangoproject.com/en/1.8/topics/http/file-uploads/ spa
表单定义code
class UploadFileForm(forms.Form): title = forms.CharField(max_length=50) file = forms.FileField()
表单对象生成.orm
form = UploadFileForm(request.POST, request.FILES)htm
request.POST里面是除了request.FILES外其余的参数,这里好比title.对象
可是奇怪的是若是我UploadFileForm里面只有一个tile。这里写成form = UploadFileForm( request.FILES),就是会报错…………(悲催的我搞了很久没明白,第一个参数)ip
发现这个第一个参数是被用来判断布尔值的。难道是用来YY的?写成UploadFileForm( {},request.FILES)就没问题了。文档
顺便贴下保存方法:get
def handle_upload_file(f):
"""save the file which is loaded """
print('in handle')
try:
path = UPLOADED_FILE_DIRS + time.strftime('/%Y/%m/%d/%H/%M/%S/')
print(path)
if not int(os.path.exists(path)):
os.makedirs(path)
path_file_name = path+f.name
print(path_file_name)
destination = open(path_file_name, "wb+")
for chuck in f.chunks():
destination.write(chuck)
destination.close()
except Exception as e:
print(e)
return path_file_name
html中设置enctype="multipart/form-data"