哪里出错?
<?
if($_GET['data'])
{
print 'atmam';
include ('http://downloads.website.com/download/3725f5eea93437e9de52f9b15854f5c1');
}
else {
print 'fail to download'; }
?>
写在屏幕上的错误:
Warning: Unexpected character in input: '' (ASCII=1) state=1 in http://downloads.website.com/download/3725f5eea93437e9de52f9b15854f5c1 on line 515
Parse error: syntax error, unexpected T_STRING in http://downloads.website.com/download/3725f5eea93437e9de52f9b15854f5c1 on line 515
PS:http://downloads.website.com/download/3725f5eea93437e9de52f9b15854f5c1 =直接文件下载链接
你能帮忙吗? 最好的问候答案 0 :(得分:0)
看看这是否符合您的要求:
<?php
if ($_GET['data']) {
// Some headers that indicate a generic download
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment');
// Try and read the file directly to the client
if (!@readfile('http://downloads.website.com/download/3725f5eea93437e9de52f9b15854f5c1')) {
// Try and clear the header and print a message. This may not work depending on the result of the readfile() attempt.
@header('Content-Disposition:');
print 'fail to download';
}
exit;
}
?>
另一种选择(许多人会说更好)的方法是:
<?php
if ($_GET['data']) {
// Redirect the client to the actual location
header('HTTP/1.1 302 Found');
header('Location: http://downloads.website.com/download/3725f5eea93437e9de52f9b15854f5c1');
exit;
}
?>
答案 1 :(得分:0)
PHP为此提供了一个名为file_exists的函数。 $ _GET ['data']用于从html元素中获取信息,其中附有name =“data”。如果你的文档中没有这个,脚本将永远不会运行,因为它寻找不存在的东西。即使元素确实存在,这也不是$ _GET的必要或推荐使用。
要了解有关您要执行的操作的更多信息,请查看此链接,然后查看我的示例。
http://php.net/manual/en/function.file-exists.php
要使用它,您只需执行此操作:
$filename = 'http://downloads.website.com/download/3725f5eea93437e9de52f9b15854f5c1';
if (file_exists($filename)) {
echo 'atmam';
include ('$filename');
}
else
echo 'Failed to download file';
我假设您要将此用于您网站必须访问的任何文件,以节省您在功能中使用它的时间。
function testfile(filename) {
if (file_exists(filename)) {
echo 'atmam';
include ('filename');
}
else
echo 'Failed to download file';
}
像这样调用函数:
$filename1 = 'http://downloads.website.com/download/3725f5eea93437e9de52f9b15854f5c1';
$filename2 = 'something.txt';
function testfile($filename1);
使用该功能,您可以使用每个文件名的变量检查任意数量的文件名。
编辑:要解决即将出现的语法错误,您必须确保包含的文件没有错误。请在这里发布给我们看看。删除回声和打印将不会改变任何东西,实际上你想要那些在那里调试。首先尝试使用我放在这里的一小段代码,这是检查文件是否存在的正确方法,如果存在,则执行某些操作。一旦您使用正确的代码检查文件并将其包含在内,您就可以确定一旦修复了包含文件中的任何问题,您将拥有所需的功能。
希望这会帮助你! -Sean