下面是代码:
@app.route('/upload', methods=['GET','POST'])
def upload():
if request.method == 'POST':
upload_file = request.files['abc']
if upload_file and allowed_file(upload_file.filename):
filename = secure_filename(upload_file.filename)
file_path = os.path.join(app.config['UPLOAD_FOLDER'], filename)
upload_file.save(file_path)
# 读取文件内容
with open(file_path, 'r') as f:
file_content = f.read()
# 处理文件内容
# ...
return 'success'
else:
return 'failed'
return '''
<!doctype html>
<html>
<head>
<title>Upload new File</title>
</head>
<body>
<h1>Upload new File</h1>
<form action="" method=post enctype=multipart/form-data>
<p><input type=file name=abc>
<input type=submit value=Upload>
</form>
</body>
</html>
'''
在 upload 函数中,首先判断是否为 POST 请求,如果是,则从 request.files 字典中获取文件对象(此处的 key 为 abc),接着使用 secure_filename 函数处理文件名,生成文件路径,并使用 save 方法保存到服务器端。最后,使用 Python 中的 open 函数读取文件内容,进行处理。
如果想要在另一个 Python 程序中处理文件内容,可以使用 Flask 提供的 url_for 函数生成文件路径,在新程序中导入 Flask 的应用对象,使用该应用对象获取路径信息。代码示例如下:
如果想在另一个 Python 程序中处理该文件,可以通过 Flask 提供的 url_for 函数生成文件的 URL,并在新程序中使用 requests 库读取文件内容。代码示例如下:
server.py
from flask import Flask, request, url_for
import os
app = Flask(name)
app.config['UPLOAD_FOLDER'] = 'uploads'
@app.route('/upload', methods=['GET','POST'])
def upload():
upload_file = request.files['abc']
if upload_file and allowed_file(upload_file.filename):
filename = secure_filename(upload_file.filename)
file_path = os.path.join(app.root_path, app.config['UPLOAD_FOLDER'], filename)
upload_file.save(file_path)
return url_for('get_file', filename=filename)
else:
return 'failed'
@app.route('/uploads/')
def get_file(filename):
return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
new_program.py
import requests
url = 'http://localhost:5000/uploads/' + filename
res = requests.get(url)
file_content = res.content
对 file_content 进行处理,比如读取其中的内容,写入到另一个文件等