我是php的新手,需要帮助。
我的链接如下:
//create a path to download
echo '<a download="Final_File_'.$filenames.'" name="save" href="'.$DownDir. "/".$filenames.'" target="_blank"><img src="images/Save File.png"/></a>';
//Query
$Query = 'UPDATE `tbl_download_log` SET `User_Id` = `User_Id`, `path` = `$DownDir. "/".$filenames`';
单击ImageLink时保存文件,需要使用“用户ID”&amp;更新名为tbl_download_log
的MySQL数据库中的表。 '同时下载链接'。
我建立了连接并获得了用户ID。 请帮我更新db表中的东西。
在其中更新新脚本。
<?php
$DownDir = "http://localhost/SGA-INTRANET/".$kmsroot. "/". $user. "/". $bu. "/". $client. "/". $project."/Final";
$filenames = "file.xlsx";
$pathDown1 = $DownDir. "/".$filenames;//download path
//using download functionality of HTML 5
echo '<a download="Final_File_'.$filenames.'" name="save" href="'.$pathDown1.'?id='.$name.'&filepath='.$pathDown1.'" target="_blank"><img src="images/Save File.png" title="Download the file"/></a>';
?>
<?php
$ide = $_GET['id'];//EmployeeID
$file = $_GET['filepath'];// Path
if(isset($ide) && isset($file))
{
if(file_exists($file))
{
//save log to DB table 'tbl_km_file_download'
$mysqli = new mysqli("localhost", "USERNAME", "PASSWORD", "DBNAME");
$mysqli->query("INSERT INTO `tbl_km_file_download` (`name`, `filename`) VALUES ('$ide', '$file')");
}
}
?>
正在下载文件但没有更新数据库表。 请看图片。
请帮忙。
答案 0 :(得分:1)
您可以使用查询字符串。
通过href传递数据echo '<a href="path/download.php?id='.$user_id.'&file='.$file.'">CLICK THE LINK</a>';
$ file 应该是根相对路径,以/
开头。
然后在 download.php :
<?php
$id = $_GET['id'];
$file = $_GET['file'];
if(isset($id) && isset($file)) {
if(file_exists($file)) {
//connect to database .... (I show it with PDO)
$db = new PDO('mysql:host=localhost;dbname=DATABASENAME;charset=utf8', USERNAME, PASSWORD);
$stmt = $db->prepare("INSERT INTO `tbl_download_log` (`User_Id`, `path`) VALUES (?, ?)");
$stmt->execute(array($id, $file));
//download the file....
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
} else echo "The file does not exist.";
} else echo "An error occurred.";
希望这有帮助。