flask文件上传

flask 文件上传

一、前端中的准备工作

  1. 文件上传必须要在表单(form)中
  2. 提交方式(method)必须为 post 请求
  3. 表单的 enctype 属性值必须为 multipart/form-data
头像

二、服务器端

  1. 通过 request.files 获取上传的文件

    从缓存区中取出用户上传的文件
    f = request.files['文件框的name值']
    
  2. 通过 f.save(‘保存路径’) 将文件保存到指定目录处

    f.filename : 能得到原始的文件名
    注意:
        1. 必须保证保存目录是存在的
        2. 保存时要精确到保存的文件名
        3. 保存路径为本地路径,不是访问路径
    
  3. 用户上传文件的文件名重复问题

    解决办法:给原用户文件名改一个大概率不会重复的名称
    
@app.route('/register',methods=['POST','GET'])
def register():
	if request.method == 'GET':
		return render_template('register.html')
	else:
	    # 判断是否有文件上传,防止出错
        if request.files:
        	f = request.files['uhead']
        	# f.save('flask/videoWeb/static/images/'+f.filename)
        	# 处理文件名,防止文件名重复
        	# 获取当前文件的绝对路径
        	basedir = os.path.dirname(__file__)
        	# 获取系统时间
        	ftime = datetime.datetime.now().strftime('%Y%m%d%H%M%S%f')
        	# 拼成字符串
        	file_path = os.path.join(basedir,'static/images',ftime+f.filename)
        	f.save(file_path)
        	return '上传成功'

你可能感兴趣的:(flask)