W swoim komentarzu pytasz, jak wgrać i przechowywać dane do mysql. Oto on:
Aby pobrać plik, powinieneś mieć skrypt w swoim html, taki jak ten:
<html>
<body>
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
Teraz, w POST, twój plik PHP powinien wyglądać tak, ale pamiętaj, że musisz sprawdzić, czy plik istnieje w twoim POST:
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
Ponieważ część „Przechowywane w:” jest tylko ścieżką tymczasową, należy przejść do „prawdziwej” ścieżki obrazu za pomocą move_uploaded_file() .Powiedzmy, że rzeczywista/domyślna ścieżka do Twoich obrazów to:
$image_dir= '/images/';
Wystarczy przenieść plik za pomocą tego:
move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $image_dir. $_FILES['uploaded_file']['name']);
Twoja pełna ścieżka do obrazu byłaby
$image = $final_save_dir . $_FILES['uploaded_file']['name'];
Ścieżkę do bazy danych można zapisać na kilka sposobów:
Pierwszy:ma przechowywać tylko nazwę pliku i połącz ścieżkę obrazu w PHP za pomocą $_SERVER['DOCUMENT_ROOT']
i domyślną ścieżką obrazu, np.:
$sql="insert into employee_detail( emp_image, employee_name, employee_address,
employee_contact, employee_designation, employee_salary)
values( '$image', '$_POST[employee_name]', '$_POST[employee_address]', '$_POST[employee_contact]',
'$_POST[employee_designation]','$_POST[employee_salary]')";
Drugi:ma przechowywać pełną ścieżkę jak:
$sql="insert into employee_detail( emp_image, employee_name, employee_address,
employee_contact, employee_designation, employee_salary)
values( '".$_SERVER['DOCUMENT_ROOT']."\\images\\".$image."', '$_POST[employee_name]', '$_POST[employee_address]', '$_POST[employee_contact]',
'$_POST[employee_designation]','$_POST[employee_salary]')";
To, co polecam, to podejście, w którym wprowadzisz ścieżkę częściową (bez katalogu głównego), aby później nie było problemu z jego wdrożeniem:
$sql="insert into employee_detail( emp_image, employee_name, employee_address,
employee_contact, employee_designation, employee_salary)
values( 'images\\".$image."', '$_POST[employee_name]', '$_POST[employee_address]', '$_POST[employee_contact]',
'$_POST[employee_designation]','$_POST[employee_salary]')";
I upewnij się, że obrazy zostały pomyślnie przesłane do tego domyślnego katalogu/ścieżki obrazu .
AKTUALIZUJ
Zalecam również użycie mysqli_*
lub PDO
i użyj prepare()
metoda / funkcja zapobiegająca wstrzykiwaniu sql.