我有一个Flask视图,它生成数据并将其保存为带有Pandas的CSV文件,然后显示数据.第二个视图用于生成的文件.我想在下载后删除该文件.我当前的代码引发了权限错误,可能是因为after_request在文件提供之前删除了该文件send_from_directory.如何在提供文件后删除文件?
def process_data(data)
tempname = str(uuid4()) + '.csv'
data['text'].to_csv('samo/static/temp/{}'.format(tempname))
return file
@projects.route('/getcsv/<file>')
def getcsv(file):
@after_this_request
def cleanup(response):
os.remove('samo/static/temp/' + file)
return response
return send_from_directory(directory=cwd + '/samo/static/temp/', filename=file, as_attachment=True)
Run Code Online (Sandbox Code Playgroud) 我的代码需要一些帮助。在我的网站中,我无法弄清楚如何解决问题。我通过 JavaScript 解释代码创建一个链接,让您下载静态文件夹请求的文档。这样做。
@ App.route ( '/ static / document / <path: name>', methods = [ 'POST'])
def downloads (name): #name is the name of the document
return os.remove (name)
Run Code Online (Sandbox Code Playgroud)
然后文件我拿了,但是文件没有删除。这是用于下载此文件的 javascript 代码。
downloadlink var = document.createElement ( "a");
d = obj.d; # D is download method before
downloadlink.href = d;
downloadlink.className = "DOWNLOAD_LINK";
downloadlink.download = n;
downloadlink.onClick = setTimeout (function () {location.reload (true);}, 30000);
downloadlink.innerHTML = "<p> Download document" + n + "</ p>";
document.getElementById ( "results"). appendChild (downloadlink); …Run Code Online (Sandbox Code Playgroud)