我正在設計一個網站。我有一個帶有複選框的表單。我想根據哪個複選框被用戶選中,我發送一個文件給用戶下載它。首先我將文件保存在服務器上,但現在我意識到這不是一個好方法。因爲可能會有很多人同時請求文件,所以很多文件都會存儲在服務器上。我需要一種方法將可下載的文件發送到客戶端,而不必在服務器上存儲。你能指導我怎麼可能嗎? (爲了讓下載,能夠我存放在媒體文件夾中的文件和我發送的數據是下載,能夠文件模板我的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