我的flask应用程序应该从json对象发布的URL中下载文件。 应下载文件以进行进一步处理。我没有收到错误消息。很多教程都是关于用户如何上传文件的,但这不是我的情况。有人可以帮忙吗?
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)
答案 0 :(得分:0)
urlretrieve(file_url,local_file)
是正确的实现方式,但Flask并没有特定的内容。
我建议您尝试使用Python解释器,看看是否可行:
>>> import urllib.request
>>> urllib.request.urlretrieve('http://some/url', '/some/file/location.txt')
如果可行,这意味着您的代码将永远不会执行。
您可能需要打印files
的值以查看列表是否不为空。
答案 1 :(得分:0)
我找到了解决方案!
要从Web下载到烧瓶服务器,我不需要创建这样的文件夹:
download_folder=os.path.join(app.instance_path,'downloads')
app.config['DOWNLOAD_FOLDER'] = download_folder
我只需要通过以下方法创建一个下载文件夹:
os.makedirs('downloads')
真的很简单:)