PHP强制文件下载代码-错误

PHP强制文件下载代码-错误,php,download,Php,Download,我正在使用以下代码 <?php $rFile = $_GET['sfile']; $rExt = $_GET['ext']; header("Content-disposition: attachment; filename=".urlencode( $_GET['sfile'] ).".".$_GET['ext']); header('Content-type: Image/jpeg'); readfile( "wallpapers/".$rFILE.$rRes.$rExt );

我正在使用以下代码

<?php
$rFile = $_GET['sfile'];
$rExt  = $_GET['ext'];
header("Content-disposition: attachment; filename=".urlencode( $_GET['sfile'] ).".".$_GET['ext']);
header('Content-type: Image/jpeg');
readfile( "wallpapers/".$rFILE.$rRes.$rExt );  
?>

我传递变量,文件正在下载。。但是这些图像并没有被创建

  • 我看到一个带有正确名称的图像图标的图像文件,但没有预览
  • 图像不会在任何图像查看器中打开(我使用的所有图像都是JPEG)
  • 所有下载的图像都有相同大小的336到337字节。。。所以我想可能传输大小是有限的,所以我使用了,但在那之后,只有文件大小增长到445到446字节,没有更多

怎么办。。我需要提供图像下载的直接链接…

我敢打赌336到337字节包含一条PHP错误消息,它会告诉您问题出在哪里


删除JPEG内容类型标题以查看输出。

我敢打赌,336到337字节包含一条PHP错误消息,该消息将告诉您问题所在


删除JPEG内容类型标题以查看输出。

在第1行,您看到的是
$rFile
,在第5行,它是
$rFile
-也许这就是问题所在?如果没有,则不可能不看到错误消息就说出来。

在第1行,您看到的是
$rFile
,在第5行,它是
$rFile
-也许这就是问题所在?如果没有,那么在没有看到错误消息的情况下是不可能说的。

好的,现在我这样做了

$rFile = $_GET['sfile'];
$rExt  = $_GET['ext'];
header("Content-disposition: attachment; filename=".urlencode( $_GET['sfile'] ).".".$_GET['ext']);
header('Content-type: Image/jpeg');
readfile( "wallpapers/".urlencode($rFile).".".$rExt );
现在正在下载大小正确的文件。。但是我还是看不到预览。。我的图像维维和编辑这样说

ACDsee空白屏幕

Windows页面和传真查看器无可用预览

MS Paint路径绘制无法读取此文件这不是有效的位图文件。或者它的格式不受支持

好的,现在我这样做了

$rFile = $_GET['sfile'];
$rExt  = $_GET['ext'];
header("Content-disposition: attachment; filename=".urlencode( $_GET['sfile'] ).".".$_GET['ext']);
header('Content-type: Image/jpeg');
readfile( "wallpapers/".urlencode($rFile).".".$rExt );
现在正在下载大小正确的文件。。但是我还是看不到预览。。我的图像维维和编辑这样说

ACDsee空白屏幕

Windows页面和传真查看器无可用预览


MS Paint路径绘制无法读取此文件这不是有效的位图文件。或者它的格式不受支持

我希望您正在对$\u GET数据进行一些清理,否则您将遇到比图像数据下载不正确更大的问题。该代码已经成熟,可以进行目录遍历攻击。

我希望您正在对$\u GET数据进行一些清理,否则您将遇到比未正确下载图像数据更大的问题。这段代码已经成熟,可以进行目录遍历攻击。

接受这些变量的方式有潜在的危险。您应该始终使用
realpath()
检查最终结果是否是墙纸文件夹的子文件夹您接受这些变量的方式有潜在危险。您应该始终使用
realpath()
检查最终结果是否是墙纸文件夹的子文件夹wooooh。。。有此错误消息。。。尊敬兄弟。。其如下所示
注意:未定义变量:C:\wamp\www\wallz\download.php中的rFILE,第13行

警告:readfile(wallps/_4x3jpg)[]:无法打开流:在第二行的C:\wamp\www\wallz\download.php中没有这样的文件或目录。但是有没有一种方法可以设置为强制下载文件,而不是在浏览器中显示。。在网上找到以下内容,但不知道它在做什么。。。有此错误消息。。。尊敬兄弟。。其如下所示
注意:未定义变量:C:\wamp\www\wallz\download.php中的rFILE,第13行

警告:readfile(wallps/_4x3jpg)[]:无法打开流:在第二行的C:\wamp\www\wallz\download.php中没有这样的文件或目录。但是有没有一种方法可以设置为强制下载文件,而不是在浏览器中显示。。在互联网上找到以下内容,但不知道它在做什么“图像”ind内容类型必须是小写:“图像”-但我认为这不是问题所在。而且:如果你的问题有其他信息,请编辑问题并在那里提供,如果不是问题的解决方案,不要发布你自己问题的答案(而且只有在没有其他人回答的情况下才应该这样做),“Image”ind content类型必须是小写的:“Image”-但我认为这不是问题所在。并且:如果您的问题有其他信息,请编辑问题并在那里提供,如果不是问题的解决方案,请不要发布您自己问题的答案(而且只有在没有其他人回答的情况下才应该这样做)