2010-06-19 282 views
1

我正在为我的站点创建一个成员区域,并且它已经在运行。我使用mysql和php验证成员,这非常有效。使用PHP身份验证的HTTP身份验证

但是现在出现了问题,我想为成员提供将文件上传到系统的可能性,这些文件只能用于登录成员。

我知道我可以将这些文件存储到数据库甚至是文件系统中,并通过php提供它们,但是当成员上传更大的文件时,服务器会变得非常沉重。这些文件甚至可能是20MB甚至更大。

我想让apache提供这些文件,但只需要找到一种方法来自动执行http身份验证,因此用户不需要登录两次。我想这是可以做一个用户名和密码后面的这个http认证,就像当用户登录到php和mysql认证时,透明地在同一时间javascript等也会做http认证,每个成员都会做使用相同凭证的http认证。当然,我不想将这些http认证凭证存储在一个JavaScript文件中,但像​​解决方案这样的ajax可能会做到这一点。我只是不知道如何做到这一点。

回答

1

看起来好像使用HTTP身份验证(您专门使用HTTP协议进行身份验证,并且浏览器向用户显示一个弹出窗口)混淆了身份验证(您提供某种登录方式)。

您可能需要前者,以便您可以设计登录页面的样式。在这种情况下,您必须使用PHP或一些脚本语言来检查用户是否已登录。fpassthrureadfile对于某些网站可能是很好的解决方案;他们快速且针对此类工作进行了优化。

如果您确实想在Web浏览器中而不是在PHP中执行文件处理工作,则一种解决方案可能是创建唯一的,短暂的文件名。例如,您可以使用link在PHP中创建到该文件的硬链接,然后将用户重定向到临时文件名。将硬链接存储在数据库中,并在一段时间后将其删除。

相关问题