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>
幻想毫无价值,计划渺如尘埃,目标不可能达到。这一切的一切毫无意义——除非我们付诸行动。