我正在编写一个用PHP上传文件的表单。这是我的输入框:
$file_name = filter_input(INPUT_POST, 'file_name');
$file = filter_input(INPUT_POST, 'file');
$file_date = filter_input(INPUT_POST, 'premiere_date');
$file_director = filter_input(INPUT_POST, 'director_name');
我不知道自己哪里做错了,以下是具体情况:
if ((filter_input(INPUT_POST, 'submit'))) { //if submit button is clicked
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["file"]["file_name"]);
move_uploaded_file($_FILES["file"]["tmp_name"], $target_file);
echo $target_file;
}
这是HTML
<form id="savingFiles" action="upload.php" method="post" enctype="multipart/form-data">
<label>Name of the file:</label>
<input type="text" name="file_name" value="<?php if (isset($row['file_name'])) {
echo $row['file_name'];
} ?>"/>
<br>
<label>Select your file:</label>
<input type="file" name="file" value="<?php if (isset($row['file'])) {
echo $row['file'];
} ?>"/>
<br>Date of premiere:
<input type="date" name="premiere_date" value="<?php if (isset($row['premiere_date'])) {
echo $row['premiere_date'];
} ?>"/>
<br>
<label>Name of the director:</label>
<input type="text" name="director_name" value="<?php if (isset($row['director_name'])) {
echo $row['director_name'];
} ?>"/>
<br>
<button type="submit" value="submit" name="submit">Upload file</button>
</form>
<?php
//Table with records
$sql = "SELECT myFilms.id, file_name, file, premiere_date, director_name FROM myFilms JOIN myFilms_directors ON myFilms.director_id = myFilms_directors.id";
/*for mysqlia
* $result = $conn->query($sql);
*/
/*for mysql (old)*/
$result = mysql_query($sql);
if ($result) {
echo "<table border='1' id='filesResults'><tr><th>FILE ID</th><th>FILE NAME</th><th>FILE</th><th>PREMIERE DATE</th><th>DIRECTOR NAME</th></tr>";
/* in mysqli
* while ($row = $result->fetch_assoc()) */
/*for mysql (old)*/
while ($row = mysql_fetch_array($result)) {
echo '<tr><td>' . $row['id'] . '</td><td>' . $row['file_name'] . '</td><td><a href= "'. $row['file']. ' ">view file</a></td><td>' . $row['premiere_date'] . '</td><td>' . $row['director_name'] . '</td></tr>';
}
echo "</table>";
} else {
echo "there is not data on the table";
}
/*for mysqli
$conn->close();
*/
/*for mysql (old)*/
mysql_close($dbhandle);
?>
因此,当我echo $target_file时,我期望它在这种情况下是uploads/nameOfTheFile.pdf的路径,但它只显示为uploads/。所以$target_dir,我是否正确使用basename函数?我已经在w3schools上检查了它,对我来说似乎是正确的,但肯定有些问题...
谢谢大家!!
var_dump(basename($_FILES["file"]["file_name"]));
,您会得到什么? - Scott