0
我創建的網站應該可以讓用戶上傳和下載文件。上傳文件時,名稱和路徑存儲在數據庫中。要下載文件,我創建了一個download.php
,其中應列出上傳的文件。我遇到的問題是下載頁面無法正常工作,沒有顯示文件,並且顯示路徑不會被定義。php - 使用mysql下載文件
index.php文件:
<?php
include('db.php');
$sql = "SELECT * FROM documents";
$res = mysqli_query($con, $sql);
?>
<html>
<head>
<title>Documents</title>
</head>
<body>
<nav id="nav">
<ul>
<li><a href="upload.php">Upload</a></li>
<li><a href="download.php">Download</a></li>
</ul>
</nav>
<?php
while ($row = mysqli_fetch_array($res)) {
$name = $row ['name'];
$path = $row ['path'];
}
?>
</body>
</html>
upload.php的文件:
<?php
include("db.php");
if(isset($_POST['submit'])){
$name = $_FILES['myfile']['name'];
$tmp_name = $_FILES['myfile']['tmp_name'];
if($name){
$location = "/storage/ssd1/139/2476139/uploads/$name";
move_uploaded_file($tmp_name, $location);
$query = mysqli_query($con, "INSERT INTO documents (name, path) VALUES('$name', '$location')");
header('Location: index.php');
}
else
die("Please select a file.");
}
?>
<html>
<head>
<title>Upload File</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<label>Browse File:</label>
<input type="file" name="myfile">
<input type="submit" name="submit" value="Upload" onclick="index.php">
</form>
</body>
</html>
的download.php文件:
<?php
include('db.php');
echo $name."<a href='download.php?dow=$path'>Download</a><br>";
if(isset($_GET['dow'])) {
$path = $_GET['dow'];
$res = mysqli_query($con, "SELECT * FROM documents WHERE path='$path'");
readfile($path);
}
?>
您正在嘗試在定義它之前使用'$ path'變量。 – David
當我將echo部分放入if語句時,我可以避免它嗎? –
你確定'$ path'不是空的或者存儲真正的路徑嗎? – aidinMC