Sự cố bảo mật và tiện ích mở rộng không dùng nữa sang một bên, tất cả những gì bạn cần làm là chèn tên tệp vào cơ sở dữ liệu. Để làm điều đó, hãy thêm trường "tên tệp" vào cơ sở dữ liệu của bạn và sau đó điều chỉnh truy vấn chèn của bạn cho phù hợp:
INSERT INTO products (name, description, price_low, price_high, filename)
VALUES (:name, :desc, :price_low, :price_high, :filename)
Ngoài ra, $uploaddir
của bạn biến trống, các tệp có thể không được lưu ở bất kỳ đâu vào lúc này. Để di chuyển các tệp của bạn đúng cách, hãy thử một cái gì đó như sau:
$uploaddir = '/path/where/you/can/save/';
$rawFilename = $_FILES['userfile']['name'];
$extension = pathinfo($rawFilename, PATHINFO_EXTENSION);
$uploadfile = $uploaddir . md5($rawFilename) . '.' . $extension;
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Upload failed";
}
Tập lệnh này giả định rằng bạn tin tưởng nội dung được tải lên và hàm md5 chỉ là một cách nhanh chóng và dễ dàng để "làm sạch" (nếu tôi có thể gọi nó như vậy) tên của tệp.