bottle框架学习(六)实现HTTP上传文件

实现上传文件的页面

表单

<form action='' method='post' enctype="multipart/form-data">
    <input type='file' name='fileupload'>
</form>

from bottle import route,run

htmlstr = """
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>bottle</title>
</head>
<body>
    <form action="" method="post" enctype="multipart/form-data">
        <input type="file" name = "fileupload"/>
        <input type="submit" value="上传文件" />
    </form>
</body>
</html>

"""

@route('/upload')
def index():
    return htmlstr


run(host='localhost',port=80,debug=True,reloader=True)

这里写图片描述

实现接受上传文件业务函数

  • uf = request.files.get(‘name’)

  • FileUpload类

    • 实例属性
      • file:服务器端保存的上传文件的file-like对象
      • name :上传文件表单名
      • raw_filename:客户端原始文件名
      • filename:适应于服务器端的标准化后的文件名
    • 方法
      • save(path,overwrite=False)
  • 过滤并处理文件

  • 保存文件:uf.save(path)
  • 注意上传文件的安全过滤

from bottle import route,run,request

htmlstr = """
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>bottle</title>
</head>
<body>
    <form action="" method="post" enctype="multipart/form-data">
        <input type="file" name = "fileupload"/>
        <input type="submit" value="上传文件" />
    </form>
</body>
</html>

"""

@route('/upload',method=['GET','POST'])
def index():
    if request.method == 'GET':
        return htmlstr
    else:
        uf = request.files.get('fileupload')
        uf.save(uf.filename,)
        return "上传文件完成,已经保存在服务器端"


run(host='localhost',port=80,debug=True,reloader=True)

这里写图片描述
这里写图片描述
在服务器端查看文件
这里写图片描述

猜你喜欢

转载自blog.csdn.net/sunchengquan/article/details/79560409