2016-03-01 2 views
-2

Я пытаюсь создать upload.php, который загружает только PDF, DOC и DOCX в базу данных (путь) и файл на моем сервере. Теперь моя загрузка в файл работает, но я действительно не знаю, как загрузить ссылку (путь) в мою строку таблицы.Как загрузить файл в базу данных

Также файл, который я загружаю, должен быть загружен одним нажатием кнопки на подробной странице.

Мой 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 ($_FILES["cv"]["error"] > 0) 
{ 
echo "<font size = '5'><font color=\"#e31919\">Error: NO CHOSEN FILE <br />"; 
echo"<p><font size = '5'><font color=\"#e31919\">INSERT TO DATABASE FAILED"; 
} 
else 
{ 
    move_uploaded_file($_FILES["cv"]["tmp_name"],"files/" . $_FILES["cv"]["name"]); 
echo"<font size = '5'><font color=\"#0CF44A\">SAVED<br>"; 

$file="files/".$_FILES["cv"]["name"]; 
$sql="INSERT INTO person (person_cv, path) VALUES ('','$file')"; 

if (!mysql_query($sql)) 
{ 
    die('Error: ' . mysql_error()); 
} 
echo "<font size = '5'><font color=\"#0CF44A\">SAVED TO DATABASE"; 

} 

mysql_close(); 

?> 

Имя базы данных называется «человек», который имеет таблицу с именем лица. Ссылка на файл должна сохраняться в person_cv. Я новичок в PHP, и я пытаюсь понять PHP, но есть так много способов сделать это, потому что я запутался.

+0

У вас возникли какие-либо ошибки с этим кодом? – JNevill

+0

Я не потому, что код работает, и он загружает файл в каталог на моем сервере. – GLRotterdam

ответ

1

Вы тоже смущены структурой базы данных, как я вижу.

Я не знаю, что данные, которые вы действительно хотите сохранить в базе данных, но вам нужно следующее:

  • таблица с основными данными (так называемый, например people_id), где вы будете иметь, например,
    • id
    • name и surname
    • cv_file_id
  • таблица с информацией файла
    • file_id (значения должны быть такими же, как и в cv_file_id)
    • name (может быть точное имя файла, как это было перед загрузкой, или, вернее, изменились для лучшего манипулирования)
    • type (dfefined в основном расширением, как DOC, DOCX, TXT или около того)
  • и, вероятно, также некоторые другие таблицы для информаций людей, themse lves

И в папках домена у вас будет один, где вы будете хранить все загруженные cv-файлы. Затем вы будете обновлять таблицы db по мере необходимости, а также загружать эти файлы.

Это самый разумный способ, как это сделать. Я бы сделал это таким образом. Может быть, кто-то более опытный сделал бы это иначе.

+0

Итак, если я прав, мне нужно создать другую таблицу, где file_id имеет отношение с cv_file_id или в моем случае person_cv. Я на самом деле не использую это в течение длительного времени, возможно, всего за 1 неделю. Поэтому, если есть способ без использования/создания других таблиц и просто использовать my person_cv, это было бы здорово. И да, у меня есть две таблицы, называемые человеком и адресом, где адрес связан с человеком. – GLRotterdam

+0

Да, вы правы. –

Смежные вопросы