我正在设计一个网站。我有一个带有复选框的表格。我想根据用户选中的复选框,我向用户发送文件以下载它。首先我将文件保存在服务器上,但现在我意识到这不是一个好方法。因为可能有很多人同时请求文件,所以服务器上会存储很多文件。我需要一种将可下载文件发送到客户端而不存储在服务器上的方法。你能指导我怎么可能吗?(为了使其可下载,我将文件存储在媒体文件夹中,并将作为可下载文件的 url 的数据发送到模板中的 jquery 函数)这是我以前的代码:
def dlFunc(request):
if request.is_ajax():
authObject = socAuthenticationBackend()
if request.method == 'POST':
form = backupForm(request.POST)
if form.is_valid():
//do form processing
//receives file from server with web service
downloadFileDecoded = base64.b64decode(downloadFile)
randomNum = random.random()
strRandomNum = str(randomNum)
randPart = strRandomNum.split('.')
try:
f = open("media/downloadFiles/backup"+randPart[1]+".tar.gz","w")
try:
f.write(downloadFileDecoded)
data = "/media/downloadFiles/backup"+randPart[1]+".tar.gz"
finally:
f.close()
except IOError:
data = "error"
return HttpResponse(data)
else:
form = backupForm()
return render_to_response('backup.html', RequestContext(request, { 'form':form}))
else:
return render_to_response("ajax.html", {}, context_instance=RequestContext(request))