2015-12-26 33 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)