标签分类
技术文章
当前位置:主页 > 计算机编程 > python > Flask上传文件到服务器实例总结

Flask上传文件到服务器的方法分享

  • 发布时间:
  • 作者:码农之家原创
  • 点击:211

Flask上传文件到服务器实例总结

这篇文章主要知识点是关于Flask,上传文件,Flask上传文件到服务器实例总结,python3 flask实现文件上传功能 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Python与量化投资:从基础到实战
  • 类型:Python零基础大小:248.2 MB格式:PDF出版:电子工业出版社作者:王小川
立即下载

更多相关的学习资源可以参阅 程序设计电子书Python电子书Python视频、等栏目。

今天要做一个简单的页面,可以实现将文件 上传到服务器(保存在指定文件夹)

#Sample.py

# coding:utf-8

from flask import Flask,render_template,request,redirect,url_for
from werkzeug.utils import secure_filename
import os

app = Flask(__name__)

@app.route('/upload', methods=['POST', 'GET'])
def upload():
  if request.method == 'POST':
    f = request.files['file']
    basepath = os.path.dirname(__file__) # 当前文件所在路径
    upload_path = os.path.join(basepath, 'static\uploads',secure_filename(f.filename)) #注意:没有的文件夹一定要先创建,不然会提示没有该路径
    f.save(upload_path)
    return redirect(url_for('upload'))
  return render_template('upload.html')

if __name__ == '__main__':
  app.run(debug=True)

#upload.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
  <h1>文件上传示例</h1>
  <form action="" enctype='multipart/form-data' method='POST'>
    <input type="file" name="file">
    <input type="submit" value="上传">
  </form>
</body>
</html>

这里要注意:<form>标签里的enctype属性一定要填写'multipart/form-data'

意思是不加密,上传文件的时候一定要选这个,不然不行

好了接下来我们看看运行效果

1. 初始界面

Flask入门之上传文件到服务器的方法示例

2. 选择一个文件,点击上传

Flask入门之上传文件到服务器的方法示例

3. 最后网页会回到初始界面,然后上传的文件,也保存在我们指定的目录上了

Flask入门之上传文件到服务器的方法示例

至此,项目结束@@

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

python3 flask实现文件上传功能

本文实例为大家分享了python3-flask文件上传操作的具体代码,供大家参考,具体内容如下

# -*- coding: utf-8 -*-
import os
import uuid
import platform
from flask import Flask,request,redirect,url_for
from werkzeug.utils import secure_filename

if platform.system() == "Windows":
  slash = '\\'
else:
  platform.system()=="Linux"
  slash = '/'
UPLOAD_FOLDER = 'upload'
ALLOW_EXTENSIONS = set(['html', 'htm', 'doc', 'docx', 'mht', 'pdf'])
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
#判断文件夹是否存在,如果不存在则创建
if not os.path.exists(UPLOAD_FOLDER):
  os.makedirs(UPLOAD_FOLDER)
else:
  pass
# 判断文件后缀是否在列表中
def allowed_file(filename):
  return '.' in filename and \
      filename.rsplit('.', 1)[1] in ALLOW_EXTENSIONS

@app.route('/',methods=['GET','POST'])
def upload_file():
  if request.method =='POST':
    #获取post过来的文件名称,从name=file参数中获取
    file = request.files['file']
    if file and allowed_file(file.filename):
      # secure_filename方法会去掉文件名中的中文
      filename = secure_filename(file.filename)
      #因为上次的文件可能有重名,因此使用uuid保存文件
      file_name = str(uuid.uuid4()) + '.' + filename.rsplit('.', 1)[1]
      file.save(os.path.join(app.config['UPLOAD_FOLDER'],file_name))
      base_path = os.getcwd()
      file_path = base_path + slash + app.config['UPLOAD_FOLDER'] + slash + file_name
      print(file_path)
      return redirect(url_for('upload_file',filename = file_name))
  return '''
  <!doctype html>
  <title>Upload new File</title>
  <h1>Upload new File</h1>
  <form action="" method=post enctype=multipart/form-data>
   <p><input type=file name=file>
     <input type=submit value=Upload>
  </form>
  '''
if __name__ == "__main__":
  app.run(host='0.0.0.0',port=5000)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

以上就是本次给大家分享的全部知识点内容总结,大家还可以在下方相关文章里找到儿童python编程入门书籍推、 vue项目中使用md5加密以及、 解决axios.interceptors.respon、 等python文章进一步学习,感谢大家的阅读和支持。

上一篇:实例讲解python MNIST手写识别数据调用API的方法

下一篇:python线程池和进程池功能与用法总结

展开 +

收起 -

学习笔记

Copyright 2018-2019 xz577.com 码农之家

版权责任说明