# 74. Django简单上传文件
# 上传文件
通过另一种网络传输方式:FILES
# 前端文件
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta http-equiv="content-Type" charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>上传文件</title>
</head>
<body>
<h1>上传文件</h1>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="file_name">
<input type="submit">
</form>
</body>
</html>
# 后端文件
def upload(request):
file_obj = request.FILES.get('file_name') # 获取前端传递过来的上传文件值名为file_name的数据
print(file_obj.name) # 打印上传文件的文件名
# 判断上传文件名是否存在
file_name = file_obj.name
if os.path.exists(os.path.join(settings.BASE_DIR, file_name)):
# 如果存在同名的文件,在后面加上2
name, suffix = file_name.split('.')
name += '2'
file_name = name + '.' + suffix
# 从上传文件对象里 一点一点读取数据,写到本地
with open(file_name, 'wb') as f:
# 从上传文件对象里 一点一点读取数据
for chunk in file_obj.chunks():
f.write(chunk)
return render(request, 'upload.html')