2015-12-26 31 views
-1

我想創建一個頁面,用戶可以從他們所下載的路線下載。現在我將路由放在一個gpx文件(用PHP製作)中,保存在服務器上。並使用JS下載文件。php創建一個獨特的文件下載

如果我是正確的,當有多個用戶在同一時間;這會給問題帶來混亂。

我的問題是我怎樣才能暫時保存他們的路線,以便事後下載,而不會讓事情混淆。這應該是可能的,沒有用戶登錄。

謝謝大家提前

回答

0

你就不能滿足了要求的GPX文件使用http標題,我已經做了一些類似於pdf和doc文件的模擬。

<?php 
// your logic to get the correct gpx data goes here 

header("Content-type: application/gpx+xml"); 
header("Content-Disposition: attachment;Filename=route.gpx"); 

echo "<xml>"; 
// your gpx data here 
echo "</xml>"; 

這樣,您就可以使用相同的鏈接,所有的用戶,但他們每個人將獲得其獨特的文件生成的即時

3

這會給你並行運行的將是與其他請求不同的文件名:

$filename = uniqid('route.') . '.gpx'; 
+1

在交通繁忙的網站上對此稍加小心 –

+1

Dagon是對的。如果碰撞的後果非常消極,那麼必須找到另一種策略。如果2個請求在相同的微秒(百萬分之一秒)內運行,他們可以得到相同的'uniqid'。如果通常的情況是「呃,那很奇怪,讓我重新加載;那裏更好」,每10年發生一次,然後'uniqid'就夠了。 – BareNakedCoder

+0

只是一個想法:'$ filename ='route'.md5(uniqid().rand())。 '.gpx';'它必須是一個*非常*重度販賣的網站,因爲這可能是衝突。 –

1

我會簡單地使用路線的哈希/校驗和(GPX/xml-string)