Profil detayı eklendi, herkes profillerine girip bir gözatsın! Sevdiğiniz üyelerin cevaplarını takip edin! Tüm güncellemeler

Veri tabanında tek sütuna çoklu resim upload

merhaba arkadaşlar benim aşağıdaki gibi kodum var çoklu upload yapmak istiyorum resimleri yüklüyorum fakat ben mysql de bu resimleri tek sütünda virgüllerle ayırarak tutmak istiyorum

bi türlü ayıramadım.

aşağıdaki kodda döngüye resimleri sokuyorum ve her seferinde data değişkenine depolanıyor hal böyle olunca değişkene en son depolanan resim veri tabanına kayıt oluyor. ne kadar yol denediysem data değişkeni içinde depolanan önceki verinin değerini kaybetmeden yeni veriyi değişkene virgül ile ayırarak depolatamadım.

resimler yükleniyor ama veri tabanında sadece bir tanesi görünüyor

    if (array_filter($_FILES['proje_images']['name'])) {


        $files = ['proje_images'];
        foreach ($_FILES['proje_images'] as $file_key => $values) {
            foreach ($values as $index => $value) {
                $files[$index][$file_key] = $value;
            }
        }


        foreach ($files as $file){
            $handle = new upload($file);
            if ($handle->uploaded) {
                $handle->file_new_name_body = $data['proje_url'] . '_' . rand(1, 9999);
                $handle->image_resize = true;
                $handle->image_x = 1280;
                $handle->image_ratio_y = true;
                $handle->allowed = ['image/*'];
                $handle->process(PATH . '/upload/proje/' . $data['proje_url']);
                if ($handle->processed){
                    $data['proje_images'] = $handle->file_dst_name_body . '.' . $handle->file_dst_name_ext;
                    
                } else {
                    $error = $handle->error;
                }
            }
        }


    }
2

Cevaplar (2)

İşlem devam ediyor, lütfen bekleyin..
Hilmi BORAN
Doğru Cevap
@hboran
2 ay önce

:) resim yollarını $yollar=[]; gibi bir array değişkene set edin örneğin resim yüklendikten sonra:

$yollar[]="resim1.jpg" şeklinde

döngünün bitiminde $virgulluYollar=implode(",",$yollar); şeklinde birleştirirsiniz

Cevapla @Ekimnet2 ay önce
@hboran, kardeşim eyvallah bu şekilde hallettim resimleri yüklettim fakat önemli bir sorun daha var resimleri hep bi tane eksik yüklüyor neden.

düzenlediğim kod
if (array_filter($_FILES['proje_images']['name'])) {

$files = ['proje_images'];
foreach ($_FILES['proje_images'] as $file_key => $values) {
foreach ($values as $index => $value) {
$files[$index][$file_key] = $value;
}
}

foreach ($files as $file){
$handle = new upload($file);
if ($handle->uploaded) {
$handle->file_new_name_body = $data['proje_url'] . '_' . rand(1, 9999);
$handle->image_resize = true;
$handle->image_x = 1280;
$handle->image_ratio_y = true;
$handle->allowed = ['image/*'];
$handle->process(PATH . '/upload/proje/' . $data['proje_url']);
if ($handle->processed){
$image[] = $handle->file_dst_name_body . '.' . $handle->file_dst_name_ext;
$data['proje_images'] = implode(",",$image);

} else {
$error = $handle->error;
}
}
}

}
Cevapla @hboran2 ay önce
Sıralamada yanlışın var aşağıdaki gibi olacak işlem sırası

$image=[];
foreach($files as $file){
//resmi dizine kayıt ediyorsun
$image[]='resimyolu'; //kayıt edilen resmi arraya gönderdin
}

$data['proje_images']=implode(",",$image);
Cevapla @aydinkeskin2 ay önce
@Ekimnet doğru cevaba eriştiysen işaretle doğru cevap diye bi zahmet
Cevapla @Ekimnet1 ay önce
@aydinkeskin, :) çözüldüğünü nereden anladın? anlayamadım şu anda arkadaşın önerdiği yeni yöntemi deneyeceğim çözüme ulaşınca elbetteki bunu yapacağım..
Cevapla @Ekimnet1 ay önce
@hboran, saol kardeşim eline sağlık
İşlem devam ediyor, lütfen bekleyin..
Aydın Keskin
@aydinkeskin
2 ay önce [Güncellendi]
class resim {
	public function cokyukle($nedir)
	{
		require_once "class.upload.php";
		$resims=sha1(md5(date("1YmdHis")));
		$resimler = array();
		if(!empty($_FILES[$nedir])){
			foreach ($_FILES[$nedir] as $k => $l) {
			   foreach ($l as $i => $v) {
				  if (!array_key_exists($i, $resimler))
					 $resimler[$i] = array();
						$resimler[$i][$k] = $v;
			   }
			}
		}
		$YuklenenResimler="";
		foreach ($resimler as $resim){
		   $foo = new upload($resim);
		   if ($foo->uploaded) {
			  $foo->file_new_name_body = $resims;
			  $foo->allowed = array('image/jpeg','image/jpg','image/gif','image/png');
			  $foo->mime_check = true;
			  $foo->no_script = true;
				$foo->image_resize = true;
				$foo->image_x = 111;
				$foo->image_y = 111;
				$foo->Process( 'resim' );
				$resimbuyuk = "$foo->file_dst_name";
		   }
			$YuklenenResimler.= $foo->file_dst_name.',';			
		}
		return $YuklenenResimler;
	}
}

Kullanımı :


	if(isset($_POST["cokluresim"])){
		$demo = new resim();
		$yukle = $demo->cokyukle('resim');
		   $kayit = $db->prepare("INSERT INTO upload SET resim=:resim");
		   $kayit->execute([":resim"=>$yukle]);
	}
	// Listeleme
	$uret = $db->prepare("SELECT * FROM upload WHERE id=?");
	$uret->execute([6]); // resmin bulunduğu id 
		foreach($uret as $row){
			$resimler = $row["resim"];
			$parse = explode(',', $resimler);
			$filter = array_map('trim', $parse );
				foreach($filter as $image){
					if(!empty($image)){
						echo "<img src='resim/".$image."'>";
					}
				}
			}


bu şekilde kullanıyorum sanada yardımcı olucaktır.


İşlem devam ediyor, lütfen bekleyin..

Cevap yaz Sadece sorunun cevabını yazın

Yabancı Dizi Arşivi