如何使用php为用户上传的文件创建自定义url
如何为用户上传的文件提供自定义url 例如:用户上传一个名为stack.png的文件,并上传到目录中 但是我想允许用户在以下位置查看/下载相同的文件: 请注意,我不想使用url缩短/更改脚本,我想以某种方式将文件url映射到该位置,以便用户可以使用url在其网站或博客中插入文件“http://www.website.com/username/uploads/stack.png“而不是”http://www.website.com/uploads/stack.png" 有可能吗??如果是,我如何使用php实现它如何使用php为用户上传的文件创建自定义url,php,jquery,mysql,.htaccess,mod-rewrite,Php,Jquery,Mysql,.htaccess,Mod Rewrite,如何为用户上传的文件提供自定义url 例如:用户上传一个名为stack.png的文件,并上传到目录中 但是我想允许用户在以下位置查看/下载相同的文件: 请注意,我不想使用url缩短/更改脚本,我想以某种方式将文件url映射到该位置,以便用户可以使用url在其网站或博客中插入文件“http://www.website.com/username/uploads/stack.png“而不是”http://www.website.com/uploads/stack.png" 有可能吗??如果是,我如何使
请注意,我有数百个文件要实现tis。您提出的问题不容易快速回答。没有一个简单的基于PHP的解决方案可以在5秒内复制和粘贴。您建议的功能通常意味着某种形式的URL重写、路由方案或相关功能 此外,在一个拥有数千名用户的站点上,每个用户可能都可以上载许多文件,您必须开始考虑如何在文件系统中存储这些文件。一个平面目录中的数千个文件根本无法剪切它 好的。下面是一个简单的示例,说明如何开始解决此问题: 假设您实际将文件存储在以下表单中:
/uploads/<username>_<filename>.<extension>
这将允许您使用类似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);
您可以在VHost配置中使用别名匹配指令:
AliasMatch^/[^/]+/(.*)/usr/local/uploads/$1
有关详细信息,请参见如何处理两个用户上载名为stack.png
的文件?为什么要将所有图像存储在/uploads中,而不是为每个用户创建一个目录?
<?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);