我正在设计一个网站。我有一个带有复选框的表单。我想根据哪个复选框被用户选中,我发送一个文件给用户下载它。首先我将文件保存在服务器上,但现在我意识到这不是一个好方法。因为可能会有很多人同时请求文件,所以很多文件都会存储在服务器上。我需要一种方法将可下载的文件发送到客户端,而不必在服务器上存储。你能指导我怎么可能吗? (为了让下载,能够我存放在媒体文件夹中的文件和我发送的数据是下载,能够文件模板我的jQuery功能的URL),这是我以前的代码:如何发送可下载的文件到django中的客户端而不保存服务器上的文件
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))
谢谢...你的意思是没有办法做到这一点?是的,客户想要下载文件。你的意思是它应该在服务器上?所以,它可能会导致在服务器上保存大量文件的问题。你知道有些时候我想下载一个文件,它并不告诉我音量。它似乎是流媒体(我不知道该说什么),并且不保存在该服务器上,它只是来到我(客户端),因此它的音量不清晰。我认为应该有一种方法... – user1597122
如果有的话,那么你应该在服务器的另一部分服务你的文件,这只是我的愿景。我不知道它是否工作..但没有服务器,你不能提供文件,这是肯定的 – doniyor