我整天都在研究这个并卡住了。我有一个更新表格的基本 PHP 脚本。将详细信息传递给它,然后从上传目录下载文件。
$user = isset($_GET['use'])? $_GET['use'] : null;
$route = isset($_GET['rou'])? $_GET['rou'] : null;
$expires = isset($_GET['exp'])? $_GET['exp'] : null;
$itemnu = isset($_GET['item'])? $_GET['item'] : null;
$host="host";
$username="username";
$password="password";
$db_name="username";
$con=mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("can not select DB");
$query = "INSERT INTO database.table(item,name,expiry) VALUES ('$itemnu', '$user', '$expires')";
mysql_query($query) or die('Query "' . $query . '" failed: ' . mysql_error());
echo "<meta http-equiv=\"Refresh\" content=\"0; url=/upload/" . $route . "\">";
我现在需要做的是重定向回主页。但是你我知道你不能在使用 PHP 下载后重定向,如果我在它不起作用之前重定向。我努力了
fopen 和 file_get_contents
但由于文件将是各种微软、文本和 pdf,我无法让它工作。我也试过(作为编辑的一部分被删除我看过一个javascript并且无法使用php变量下载文件。任何帮助appricated,在此先感谢。不需要php脚本,它可以是任何东西有效。这是上传文件
<?php
$target = "../upload/";
$target = $target . str_replace(" ","_",( $_FILES['file']['name']));
$current = time();
$name=addslashes($_POST['title']);
$owner=$_POST['owner'];
$pic=str_replace(" ","_",($_FILES['file']['name']));
$time = strtotime($_POST['timestamp']);
$grade= implode(', ', $_POST['g_group']);
$Loc= implode(', ', $_POST['l_group']);
mysql_connect("host", "database", "password") or die(mysql_error()) ;
mysql_select_db("database") or die(mysql_error()) ;
$query =("INSERT INTO UPLOAD (title,owner,faoGrade, foaLocation,date, expiry,route)
VALUES
('$name', '$owner','$grade','$Loc','$current','$time', '$pic')");
mysql_query($query);
if(move_uploaded_file($_FILES['file']['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";
} else {
echo "Sorry, there was a problem uploading your file using " . query ;
}
?>
并修改了下载
<?php
$user = isset($_GET['use'])? $_GET['use'] : null;
$route = isset($_GET['rou'])? $_GET['rou'] : null;
$expires = isset($_GET['exp'])? $_GET['exp'] : null;
$itemnu = isset($_GET['item'])? $_GET['item'] : null;
$host="host";
$username="username";
$password="password";
$db_name="database";
$con=mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("can not select DB");
$query = "INSERT INTO database.READ(item,name,expiry) VALUES ('$itemnu', '$user', '$expires')";
mysql_query($query) or die('Query "' . $query . '" failed: ' . mysql_error());
sleep(20); //added didn't help
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$route);
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Length: " . filesize($route)); //added didn't work
readfile('/upload/'.$route);
header("refresh: 150; roster.php?action=Home");
exit;
?>