標籤:
最近,寫一個上次檔案的django。死活傳不過去。
在大神的協助下面,最終還是成。 不過也發現一個問題:
django 官網文檔:https://docs.djangoproject.com/en/1.8/topics/http/file-uploads/
表單定義
class UploadFileForm(forms.Form): title = forms.CharField(max_length=50) file = forms.FileField()
表單對象產生.
form = UploadFileForm(request.POST, request.FILES)
request.POST裡面是除了request.FILES外其他的參數,這裡比如title.
但是奇怪的是如果我UploadFileForm裡面只有一個tile。這裡寫成form = UploadFileForm( request.FILES),就是會報錯…………(悲催的我搞了好久沒明白,第一個參數)
發現這個第一個參數是被用來判斷布爾值的。難道是用來YY的?寫成UploadFileForm( {},request.FILES)就沒問題了。
順便貼下儲存方法:
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"
django裡面檔案上傳處理處理