我的烧瓶应用程序应从通过json对象发布到我的应用程序的网址中下载文件。应下载文件以进行进一步处理。我没有收到错误消息。很多教程都是关于用户如何上传文件的,但这不是我的情况。谁能帮忙?
import os
from flask import Flask, request, jsonify
import urllib.request as web
app = Flask(__name__)
download_folder=os.path.join(app.instance_path,'downloads')
app.config['DOWNLOAD_FOLDER'] = download_folder
@app.route('/syncaudio', methods=['POST'])
def syncaudio():
files = request.get_json(force=True)
for file_url in files['syncFileUrls']:
local_file = os.path.join(app.config['DOWNLOAD_FOLDER'], file_url.rsplit('/')[-1])
web.urlretrieve(file_url, local_file)
if __name__ == '__main__':
app.run(debug=True)
urlretrieve(file_url,local_file)
是正确的方法,Flask并没有特定的内容。
我建议您尝试使用Python解释器,看看是否可行:
>>> import urllib.request
>>> urllib.request.urlretrieve('http://some/url', '/some/file/location.txt')
如果可行,这意味着您的代码将永远不会执行。
您可能希望打印files
的值以查看列表是否为空。
我找到了解决方案!
用于从Web下载到烧瓶服务器,我不需要创建这样的文件夹:
download_folder=os.path.join(app.instance_path,'downloads')
app.config['DOWNLOAD_FOLDER'] = download_folder
我只需要通过以下方式创建一个下载文件夹:
os.makedirs('downloads')
真正的Simpel:)