Я занят небольшим проектом, где люди могут заполнить форму, которая сохранит значения в базе данных. Теперь все работает отлично, за исключением путей загрузки файлов. В моей базе данных у меня есть три таблицы лицо, адрес и резюме (с отношениями) см картина:Как сохранить путь к файлу в базе данных и показать путь подробно Страница
Теперь я хочу, чтобы путь к быть www.test.nl/directory/filename так что я могу сделать кнопку со ссылкой, поэтому, когда вы нажмете кнопку, она загрузит файл. Как всегда на моей странице подробностей, как вы можете видеть, отображается cv_id, а не путь. Моя загрузка файлов в отдельном файле, как это мой человек и адрес загрузки смотрите ниже:
адрес и лицо загрузки:
<?php
$servername = "localhost";
$username = "root";
$password = "usbw";
$dbname = "persons";
// CREATE A CONNECTION WITH THE DATABASE
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// ADDRESS APPEND - PREPARE SQL STATEMENT AND BIND PARAMS
// ADRES TOEVOEGEN - BEREID SQL STATEMENT EN BIND PARAMS
$stmt = $conn->prepare("INSERT INTO address (address_street, address_housenumber,
address_zipcode, address_city, address_state)
VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("sssss", $straat, $huisnummer, $postcode, $stad, $provincie);
$straat = htmlspecialchars($_POST['straat']);
$huisnummer = htmlspecialchars($_POST['huisnummer']);
$postcode = htmlspecialchars($_POST['postcode']);
$stad = htmlspecialchars($_POST['stad']);
$provincie = htmlspecialchars($_POST['provincie']);
// EXECUTE STATEMENT
// STATEMENT UITVOEREN
$result = $stmt->execute();
if ($result === FALSE) {
die("Error: " . $stmt->error);
}
// CAPTURE LAST INSERTED address_id
// PAK DE LAATST INGEVOERDE address_id
$last_id = $conn->insert_id;
// PERSON APPEND - PREPARE SQL STATEMENT AND BIND PARAMS
// PERSOON TOEVOEGEN - BEREID SQL STATEMENT EN BIND PARAMS
$stmt = $conn->prepare("INSERT INTO person (person_firstname, person_lastname,
person_email, person_phonenumber,
person_cv, person_address)
VALUES (?, ?, ?, ?, ?, ?)");
$stmt->bind_param("sssssi", $firstname, $lastname, $email, $telephone, $cv, $last_id);
$firstname = htmlspecialchars($_POST['firstname']);
$lastname = htmlspecialchars($_POST['lastname']);
$email = htmlspecialchars($_POST['email']);
$telephone = htmlspecialchars($_POST['telephone']);
// EXECUTE STATEMENT
// STATEMENT UITVOEREN
$result = $stmt->execute();
if ($result === TRUE) {
$URL="http://localhost:8080/Website/bedankt.php";
header ("Location: $URL");
} else {
echo "Error: " . $stmt->error;
}
// CLOSE CONNECTION AND STATEMENT
// SLUIT CONNECTIE EN STATEMENT
$stmt->close();
$conn->close();
?>
файл upload.php
<?php
$servername = "localhost";
$username = "root";
$password = "usbw";
$dbname = "persons";
// CREATE A CONNECTION WITH THE DATABASE
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if(isset($_POST['submit']))
{
$filetmp = $_FILES["cv"]["tmp_name"];
$filename = $_FILES["cv"]["name"];
$filetype = $_FILES["cv"]["type"];
$filepath = "files/".$filename;
move_uploaded_file($filetmp,$filepath);
$sql = "INSERT INTO cv (cv_name,cv_path,cv_type) VALUES ('$filename','$filepath','$filetype')";
$result = mysqli_query($conn, $sql);
}
$cv = $conn->insert_id;
?>
Моя страница деталь:
<?php
$servername = "localhost";
$username = "root";
$password = "usbw";
$dbname = "persons";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT person_firstname, person_lastname,
person_email, person_phonenumber, person_cv,
address_street,address_housenumber,
address_city,address_state,address_zipcode
FROM person
inner join address on address.address_id = person.person_address";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table border=1>
<tr>
<th>Voornaam</th>
<th>Achternaam</th>
<th>Straat</th>
<th>Huisnummer</th>
<th>Postcode</th>
<th>Stad</th>
<th>Provincie</th>
<th>Email</th>
<th>Mobiel</th>
<th>CV</th>
</tr>";
while($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td>" . $row["person_firstname"] . "</td>";
echo "<td>" . $row["person_lastname"] . "</td>";
echo "<td>" . $row["address_street"] . "</td>";
echo "<td>" . $row["address_housenumber"] . "</td>";
echo "<td>" . $row["address_zipcode"] . "</td>";
echo "<td>" . $row["address_city"] . "</td>";
echo "<td>" . $row["address_state"] . "</td>";
echo "<td>" . $row["person_email"] . "</td>";
echo "<td>" . $row["person_phonenumber"] . "</td>";
echo "<td>" . $row["person_cv"] . "</td>";
echo "</tr>";
}
} else {
echo "Er is niks in het database gevonden";
}
$conn->close();
?>
Надеюсь, вы, ребята, можете мне помочь с этим. Я новичок в PHP, поэтому я все еще изучаю все это. Обратите внимание, что все работает хорошо ... кроме загрузки www.test.nl/directory/filename и сохранения этого в моей таблице cv_path ... Показывая путь (возможно, как кнопку) на странице подробностей. Если есть способ использовать почти то же утверждение, что и адрес для загрузки файла в cv, это было бы здорово. Но поскольку это работает сейчас (пока), я сохраняю загрузку файла, а пользователь и адрес загружаются отдельно. И если можно добавить кнопку загрузки на мою страницу подробностей под CV, которая будет загружать файл, который будет идеальным.
Я редактировал ответ, чтобы добавить кнопку часть , Надеюсь, вы помирите меня в своем проекте: P – vove
haha Я буду! наверняка! : P Не очень благодарю вас! Мне нужно все прочитать снова, я много знал о PHP, но havnt ничего с ним делал в течение года. Теперь я нахожусь в прошлом году и мне нужно снова начать с PHP. Так что сложно запомнить все. – GLRotterdam