10/10/2018, 09:26

có cách nào rezise toàn bộ ảnh trong csdl ko

tôi có 1 csdl hiện tại có hơn 400 bảng ghi và hình mổi bản ghi có độ phân giải hơn 3000px bây giờ tôi muốn resize số hình đó nhưng khi tôi truy vấn toàn bộ bảng ghi cho nó trả về dạng mảng rồi dùng foreach để duyệt toàn bộ mảng và resize nó thì gặp lỗi như thế này. Anh em có giải pháo nào ko ? giúp với cảm ơn nha
tôi dùng php
Allowed memory size of 20971520 bytes exhausted (tried to allocate 2304 bytes)
Bim viết 11:26 ngày 10/10/2018
thế thì for 1 lần 50-100 gì đó thôi rồi resize xong next
jiSh@n viết 11:39 ngày 10/10/2018
Ảnh có resolution 3000x??? pixel thì sẽ chiếm bộ nhớ cực lớn khi nạp vào bằng GD. Thậm chí chưa cần dùng GD để nạp mà chỉ ở dạng resource khi load từ DB xuống cũng đã rất lớn. Muốn làm việc thì phải tăng bộ nhớ dành cho PHP lên, tham khảo chi tiết về memory_limit.
kiem_bo viết 11:36 ngày 10/10/2018
cảm ơn anh em nha. Tôi thay đổi thử ko biết thằng .htaccess có tác dùng ko nữa ?
Tôi sẽ làm thử theo 2 cách anh em chỉ bảo
jiSh@n viết 11:41 ngày 10/10/2018
memory_limit có thể thiết lập trong htaccess
kiem_bo viết 11:32 ngày 10/10/2018
tôi dùng ini_set,.htaccess nhưng vẫn ko có tác dụng vẫn bị lỗi
tôi cho vòng lặp để lấy từng mẫu tin nhưng nó cũng bị lỗi bộ nhớ
đây là code của tôi anh em xem thử nha.
function resizeImage()
{

$count=$this->model_poll->getAllCandidate();
for($i=0;$i<$count-1;$i++)
{

$detail=$this->model_poll->getDetailCandidate($i,1);
{
$up=array();
$hinh_chan_dung=$this->config->item('hinh_du_thi').$detail[0]['hinh_chan_dung'];
if(file_exists($hinh_chan_dung))
{
$size=getimagesize($hinh_chan_dung);

if($size[0] > 92)
{
$this->uploadimage_lib->createThumNail($hinh_chan_dung,$this->config->item('hinh_du_thi'),92,92);
$file=getFileName($detail[0]['hinh_chan_dung']);
$up['hinh_chan_dung_thumbnail']=$file['file_name'].'_thumb.'.$file['file_type'];
}
}
/* $hinh_toan_than=$this->config->item('hinh_du_thi').$detail[0]['hinh_toan_than'];
if(file_exists($hinh_toan_than))
{
$size=getimagesize($hinh_toan_than);

if($size[0] > 400)
{
$this->uploadimage_lib->createThumNail($hinh_toan_than,$this->config->item('hinh_du_thi'),400,400);
$file=getFileName($detail[0]['hinh_toan_than']);
$up['hinh_toan_than_thumbnail']=$file['file_name'].'_thumb.'.$file['file_type'];
}
}*/
if(isset($up['hinh_toan_than_thumbnail']) || isset($up['hinh_toan_than_thumbnail']))
$this->model_function->update('thong_tin_ca_nhan_du_thi',$detail[0]['id'],$up);

}
unset($detail);
}

}
jiSh@n viết 11:40 ngày 10/10/2018
Nhớ ko nhầm ở safemode thì ini_set ko có tác dụng với memory_limit. Hơn nữa với cái hình 3000px thì cần phải thiết lập chừng vài trăm MB, chứ vài chục MB ko ăn thua gì đâu
Bài liên quan
0