Trên bình luận của bạn, bạn hỏi cách tải lên và lưu trữ dữ liệu vào mysql. Vì vậy, đây là:
Để lấy tệp, bạn nên có một tập lệnh trong html của mình như sau:
<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>
Bây giờ, trên POST, tệp PHP của bạn sẽ trông giống như thế này nhưng xin lưu ý rằng bạn phải kiểm tra xem tệp có tồn tại trên POST của bạn không:
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"];
}
Vì phần "Đã lưu trữ trong:" chỉ là đường dẫn tạm thời, bạn nên chuyển đến đường dẫn hình ảnh 'thực' của mình bằng cách sử dụng move_uploaded_file () . Giả sử đường dẫn thực / mặc định cho hình ảnh của bạn nằm trong:
$image_dir= '/images/';
Bạn chỉ cần di chuyển tệp bằng cách sử dụng sau:
move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $image_dir. $_FILES['uploaded_file']['name']);
Và đường dẫn đầy đủ của bạn đến hình ảnh sẽ là
$image = $final_save_dir . $_FILES['uploaded_file']['name'];
Có một số cách để lưu trữ đường dẫn đến cơ sở dữ liệu của bạn:
Thứ nhất:Chỉ lưu trữ tên tệp và nối đường dẫn của hình ảnh trong PHP bằng cách sử dụng $_SERVER['DOCUMENT_ROOT']
và đường dẫn hình ảnh mặc định của bạn như:
$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]')";
Thứ 2:Là lưu trữ đường dẫn đầy đủ như:
Các giá trị$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]')";
Điều tôi đề xuất là cách tiếp cận này, trong đó bạn sẽ nhập đường dẫn một phần (không có root dir) để sau này bạn không gặp sự cố khi triển khai nó:
Các giá trị$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]')";
Và đảm bảo rằng hình ảnh được tải thành công lên đường dẫn / dir hình ảnh mặc định đó .
CẬP NHẬT
Tôi cũng khuyên bạn nên sử dụng mysqli_*
hoặc PDO
và sử dụng prepare()
phương pháp / chức năng để ngăn chặn việc tiêm sql.