gpt4 book ai didi

php - 如何使用 php 为用户上传的文件设置自定义 url

转载 作者:行者123 更新时间:2023-11-29 09:16:51 24 4
gpt4 key购买 nike

如何为用户上传的文件提供自定义 URL。

例如:用户上传一个名为 stack.png 的文件,并将其上传到目录 http://www.website.com/uploads/stack.png

但我想允许用户查看/下载相同的文件 http://www.website.com/username/uploads/stack.png

请注意,我不想使用网址缩短/更改脚本,我想以某种方式将文件网址映射到该位置,以便用户可以使用网址“http://”将文件插入到他们的网站或博客中/www.website.com/username/uploads/stack.png”而不是“http://www.website.com/uploads/stack.png”

这可能吗?如果是的话我该如何使用 php 来做到这一点。

请注意,我有数百个文件想要实现此功能。

最佳答案

您提出的问题不容易快速回答。没有一个简单的基于 PHP 的解决方案可以在 5 秒内复制和粘贴。您建议的功能通常意味着某种形式的 URL 重写、路由方案或达到此目的的功能。

此外,在拥有数千个用户的网站上,也许每个用户可以上传许多文件,您必须开始考虑如何在文件系统中存储文件。平面目录中的数千个文件根本无法解决问题。

好的。这是一个简单的示例,说明如何开始解决此问题:

假设您实际上以以下形式存储文件:

/uploads/<username>_<filename>.<extension>

了解mod_rewrite并在您的网络服务器上创建重写规则,如下所示:

RewriteRule ^(.*)/uploads/(.*) getfiles.php?username=$1&file=$2

这将允许您使用类似

的 URL
/<username>/uploads/<filename>.<extension>

创建一个名为“getfiles.php”的 php 脚本并像这样返回文件

<?php

$path = '/uploads/'.$_GET['username'].'_'.$_GET['file'];

if (!file_exists($path)) {
die(
"OMFG! The user tried to access a file that doesn't exist. " .
"I think I'm gonna die!"
);
}

header('Location: '.$path);

但请记住:这只是实现此类功能的多种方法之一。我选择这种方式只是因为它实现起来很简单。一个有经验的开发人员不会这样实现。但它应该可以工作。

关于php - 如何使用 php 为用户上传的文件设置自定义 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3854576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com