Djano - 上传文件
上传文件
views
# 上传文件
def upload(request):
if request.method == 'POST':
# 1. 取到用户发送的数据
print(request.POST)
print(request.FILES)
file_obj = request.FILES.get('file_name')
print(file_obj.name)
# 判断当前是否存在
file_name = file_obj.name
if os.path.exists(os.path.join(settings.BASE_DIR, file_name)):
# 如果存在同名的文件
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)
# 1. 第一次GET请求来,应该给用户返回一个页面,让用户选择文件
return render(request, 'upload.html')
templates
<!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="text" name="test">
<input type="file" name="file_name">
<input type="submit">
</form>
</body>
</html>
幻想毫无价值,计划渺如尘埃,目标不可能达到。这一切的一切毫无意义——除非我们付诸行动。

浙公网安备 33010602011771号