Php 如何返回到具有原始扩展名的客户端并重命名文件
我创建了一个具有上载功能的网站,并以.xxx扩展名存储在服务器中,在每个文件上重命名,然后将原始扩展名和文件名记录到数据库中Php 如何返回到具有原始扩展名的客户端并重命名文件,php,security,upload,download,Php,Security,Upload,Download,我创建了一个具有上载功能的网站,并以.xxx扩展名存储在服务器中,在每个文件上重命名,然后将原始扩展名和文件名记录到数据库中 客户端->上传->images.jpg 服务器->保存->md5.xxx 数据库->插入->images.jpg和md5.xxx 客户端->下载->图像.jpg (但不需要在服务器中重命名文件或再次重命名为md5) 如何使用php语言返回具有原始扩展名和名称文件的客户端 你能帮我解决问题吗?谢谢,对不起,我的英语 您需要一个文件来处理请求,比如downloadimage
- 客户端->上传->images.jpg
- 服务器->保存->md5.xxx
- 数据库->插入->images.jpg和md5.xxx
- 客户端->下载->图像.jpg (但不需要在服务器中重命名文件或再次重命名为md5) 如何使用php语言返回具有原始扩展名和名称文件的客户端 你能帮我解决问题吗?谢谢,对不起,我的英语
downloadimage.php
并将文件名传递给它,例如downloadimage.php?name=image.jpg
。
获取['name']并在数据库中查找文件名并提供它
然后使用重写使url变得漂亮
RewriteRule /somepath/(.*) /somepath/downloadimage.php?name=$1
因此,您可以从PHP文档中的aexample访问图像
<?php
// pseudo code
$md5_filename = get_md5_filename_from_database($_GET['name']);
// sending
header('Content-type: image/jpeg');
header('Content-Disposition: attachment; filename="'.$_GET['name'].'"');
readfile($md5_filename);
?>
现在你可以下载
www.yourdomain.com/some path/downloadimage.php?name=image.jpg
<?php
// pseudo code
$md5_filename = get_md5_filename_from_database($_GET['name']);
// sending
header('Content-type: image/jpeg');
header('Content-Disposition: attachment; filename="'.$_GET['name'].'"');
readfile($md5_filename);
?>
或者在Apache配置中使用RewriteRule
(正如穆萨所说)获得
www.yourdomain.com/some path/image.jpg
<?php
// pseudo code
$md5_filename = get_md5_filename_from_database($_GET['name']);
// sending
header('Content-type: image/jpeg');
header('Content-Disposition: attachment; filename="'.$_GET['name'].'"');
readfile($md5_filename);
?>