10/10/2018, 10:11

[Q]Đưa ảnh vào MySQL trong PHP..?

Xin chỉ giáo giùm cách đưa file ảnh vào thẳng CSDL (cụ thể là MySQL) được không? Tôi đã làm được upload ảnh đưa vào một folder trên server và đặt link đến bài viết. Nhưng như thế sẽ dễ bị trùng tên ảnh
Cám ơn nhiều nhiều...
mrmanh viết 12:15 ngày 10/10/2018
Xem Lưu nội dung file ảnh vào CSDL MYSQL tại đây:

http://thegioiwebsite.net/tin-tuc/ki...78.86.333.html
TheHeTre viết 12:14 ngày 10/10/2018
Được gửi bởi lytamhoana6cntt
Xin chỉ giáo giùm cách đưa file ảnh vào thẳng CSDL (cụ thể là MySQL) được không? Tôi đã làm được upload ảnh đưa vào một folder trên server và đặt link đến bài viết. Nhưng như thế sẽ dễ bị trùng tên ảnh
Cám ơn nhiều nhiều...
Bạn cần lưu ảnh vào CSDL với lý do sợ trùng tên ảnh thì theo tôi, tại sao bạn không viết một hàm khi upload đổi tên ảnh nếu phát hiện ra đã tồn tại một ảnh có tên tương tự:

Hàm cần dùng: file_exists()
Adam viết 12:27 ngày 10/10/2018
Được gửi bởi TheHeTre
Bạn cần lưu ảnh vào CSDL với lý do sợ trùng tên ảnh thì theo tôi, tại sao bạn không viết một hàm khi upload đổi tên ảnh nếu phát hiện ra đã tồn tại một ảnh có tên tương tự:

Hàm cần dùng: file_exists()
.
Bác chỉ dc cái nói đúng.Kiểm tra nếu tên file đã tồn tại thì có thể dùng hàm str_replace(...) và rand(....) để đặt lại tên file.
Ví dụ:
$pic_thumb=str_replace('.', rand(1, 9) . '.',$pic_thumb);
temp2 viết 12:24 ngày 10/10/2018
Bác chỉ dc cái nói đúng.Kiểm tra nếu tên file đã tồn tại thì có thể dùng hàm str_replace(...) và rand(....) để đặt lại tên file.
Ví dụ:
$pic_thumb=str_replace('.', rand(1, 9) . '.',$pic_thumb);
=> quá đúng, thường người mới làm quen với PHP&MySQL thường thích lưu tất cả mọi thứ vô DB; mặc dù đây là cái "tối kiến"
TheHeTre viết 12:24 ngày 10/10/2018
Trong trường hợp này thì có thể vắn tắt như sau:

PHP Code:

$tempImage 
$_FILES***91;'image'***93;***91;'tmp_name'***93;;
$nameImage $_FILES***91;'image'***93;***91;'name'***93;;

$dirToUpload ROOT 'uploads/';
if (
file_exists($dirToUpload $nameImage))
{
//Rename image
//Append current time (unix) at end of file name
//or whatever you want
$imageInfo explode('.'$nameImage);
$newNameImage $imageInfo***91;0***93; . '_' time() . '.' $imageInfo***91;1***93;;

move_uploaded_file($tempImage$dirToUpload $newNameImage);

Tất nhiên các trường hợp kiểm tra Validate của Image thì bạn tự làm
cuongphongnet viết 12:26 ngày 10/10/2018
Mình đang làm trang tin tức băng php!
bạn nào biết chỉ dùm:bảng "news" & "news_groups" có mã nhóm tin 'news_group_id' làm thế nào để trang thêm mới vào bảng "news" có textbook thả xuống có tên các nhóm tin mà khi submit thì chỉ thêm vào mã nhóm tin'news_group_id' vào bảng "news". Bảng "news_groups" có trường 'news_group_name' là tên nhóm??các bác giúp với..cảm ơn!!
kataro92 viết 12:14 ngày 10/10/2018
@temp2: Mình ko nghĩ lưu vào CSDL là tối kiến khi mà phải để 1 folder CMOD 777 để up ảnh, không hề có tính bảo mật. Bạn có thể nghĩ chương trình upload của bạn có kiểm tra kiểu file thì ko sao, nhưng nếu người ta viết 1 chương trình upload mà đích là trang của bạn ??? Hơn nữa, lưu vào CSDL có thể xử lý file ảnh, ví dụ như cho kích thước nhỏ hơn để hiển thị đỡ tốn diện tích. Tùy mỗi trường hợp mà dùng nhưng thực tế, các trang thương mại điện tử có uy tín hiện giờ chỉ lưu vào CSDL là chính bạn à. :|
Sau đây là cách lưu ảnh lên CSDL:
đầu tiên bạn tạo 1 form( enctype="multipart/form-data") có thẻ <input type="file" name="upload" >
Như vậy, bạn đã có thể truyền thông số của file vào biến $_FILES['upload']['tmp_name'].
Bạn viết 1 hàm chuyển kiểu dữ liệu trên thành bool, sau đó cứ insert vào CSDL. Table để up ảnh vào CSDL là MediumBool.
Bạn có thể đọc qua hướng dẫn ở đây:
http://ttth.quangbinh.gov.vn/4rum/showthread.php?p=795
Chúc bạn thành công
Bài liên quan
0