PHP çoklu resim yükleme sorunu

Kodla Büyü

mustafayilmaz28

Süper Üye
Süper Üye
Seçkin Üye
Mesajlar
1,425
hayırlı günler arkadaşlar,
seçilen resim yada resimleri boyutlandırarak yüklemek için VEROT RESİM YÜKLEME class ını kullanıyorum. tek resim boyutlandırma ve yüklemede herhang bir sorun yok.
ama,
çoklu resim yüklemede bir sorunum var ki oda şu;
<?php
$resimsayisi = count($_FILES['resim']['tmp_name']);
$izinverilenuzantilar = array ('image/jpg','image/JPG','image/jpeg','image/JPEG','image/bmp','image/BMP','image/gif','image/GIF','image/png','image/PNG');
$yuklenenresimler ='';
for($i=0; $i<$resimsayisi; $i++){
if(in_array($_FILES["resim"]["type"][$i],$izinverilenuzantilar)){
$yuklenen = yukle($_FILES['resim'], 'klasör/', 300);
#TEKLİ RESİM YÜKLERKEN (FORMDAN SEÇİLEN RESMİ $_FILES['resim'] şeklinde yolluyoruz, ama çoklu resimde bu işe yaramıyor!!) # bu sorunu bu kod bloğunun yapısını bozmadan nasıl hallederim?
#DAHA AÇIK BİR İFADE İLE TEKLİ RESİM YUKLEMEDE yükle() ADLI FONKSİYONUMA FORMDAKİ resim ALANINI $_FILES['resim'] İFADESİ İLE GÖNDERİYORUM AMA ÇOKLU YÜKLEMEDE FORMDAKİ resim ALANI DİZİ OLDUĞU İÇİN BU DİZİNİN 0. YANİ İLK ELEMANINI ($_FILES['resim'] ) yükle() FONKSİYONUMA NASIL YOLLARIM?
$yuklenenresimler = $yuklenenresimler . ',' . $yuklenen;
}
function yukle($resim, $yuklenecekklasor, $yukseklik){
include_once('class.upload.php');
$upload = new upload($resim);
if ($upload->uploaded){
$upload->file_auto_rename = true;
$upload->image_resize = true;
$upload->image_x = $yukseklik;
$upload->image_ratio_y = true;
$upload->image_text = 'Eklenecek Watermark';
$upload->image_text_color = '#FF6600 ';
$upload->image_watermark = 'watermark.png';
$upload->process($yuklenecekklasor);
if ($upload->processed){
echo $upload->file_dst_name;
return $upload->file_dst_name;
$upload->clean();
}else{
return 'Yuklenemedi';
}
}
}
}

?>
 
hocam sende dizi olarak kullan
if(in_array($_FILES["resim"]["type"][$i],$izinverilenuzantilar)) satırındaki
$_FILES["resim"]["type"][$i] kısmında dizi kullanılmış

sende aşağıdaki gibi uyarlasan olmuyor mu

yukle($_FILES['resim'][$i], 'klasör/', 300)
 
onu yaptım hocam ama olmadı, kullanım şekli hatalı oluyor.
Burada
farklı bir yöntem kullanılmış ama ben buradaki gibi değil yani yükle() fonksiyonuna dizideki resimleri tek tek göndermek istiyorum
 
ertann83' Alıntı:
hocam sende dizi olarak kullan
if(in_array($_FILES["resim"]["type"][$i],$izinverilenuzantilar)) satırındaki
$_FILES["resim"]["type"][$i] kısmında dizi kullanılmış

sende aşağıdaki gibi uyarlasan olmuyor mu

yukle($_FILES['resim'][$i], 'klasör/', 300)
burada yükleme kısmını $_FILES["resim"]["type"][$i] yapsan uzantıyı her dosya için ekleyip göndersen yada yüklemenin tamamlanmasına göre kontrol edip sıradaki dosyayı gönderecek düzenleme yapsan olmuyor mu? başka da aklıma gelen class upload dosyanda sorun olabileceği kusura bakma ancak bu kadar yardımcı olabileceğiz keşke kodları tamamen eklesen ona göre bakılsa bu konuda çok kaliteli bilgiye sahip çok arkadaş var sitede
 
?php
include("class.upload.php");
if(!empty($_FILES['img']['tmp_name'])){ // Inputta Dosya varmi yokmu kontrol edilir

$uploaddir = "../resimler"; // Yüklenmesini istedigimiz Dizini Belirliyoruz

$files = array(); //Gelen Dosyalari Ayirmak icin Arraya Aliyorum
// Arraya Aldigim Dosya isimlerini Yukleme islemine Hazir hale sokuyorum
foreach ($_FILES['img'] as $key => $value) {
foreach ($value as $i => $k) {
if (!array_key_exists($i, $files))
$files[$i] = array();

$files[$i][$key] = $k;
}
}
$uploaded = array(); // Bunu En Son da Yuklenen Resimlerin isimlerinde Kullanacam
foreach ($files as $file) {

$yukle = new Upload($file); //Classi baslatiyoruz

if ($yukle->uploaded) {
$resim_adi = array(); //En Sonda Resim isimlerinide alabilmek icin arraya soktum
$file_body =date('YmdHis'); // Resime Yuklendigi Zamanin ismini veriyorum
$yukle->file_auto_rename = true;
$yukle->file_new_name_body =$file_body; //Resimi Yeniden Adlandirdim
$yukle->image_resize = true; //Resim Boyutunum Degismesi icin TRUE degeri verdim
$yukle->image_x = 600; //Resim Boyutu
$yukle->image_ratio_y = true;
$yukle->mime_check = true; //Mime Kontrolleri
$yukle->no_script = false; //Yuklenmesini Istemedigimiz Uzantilar icin Engelleme

$yukle->Process($uploaddir); //Yuklenmesini istedigim Dizini Belirliyorum

if ($yukle->processed) {
$resim_adi['buyuk']= $yukle->file_dst_name;//Buyuk Resim Adini Belirttik
} else {
echo 'error : ' . $yukle->error; //Hata Bastiriyoruz
}

$yukle->file_new_name_body =$file_body;
$yukle->image_resize = true;
$yukle->image_ratio_y = false;
$yukle->image_x = 111;
$yukle->image_y = 83;
$yukle->image_contrast = 10;
$yukle->jpeg_quality = 100;
$yukle->Process($uploaddir."/kucuk/");

if ($yukle->processed) {
$resim_adi['kucuk'] = $yukle->file_dst_name;// Kucuk Resim Adini Belirttik
$yukle->clean();
} else {
echo 'error : ' . $yukle->error; //Hata Bastiriyoruz
}
$uploaded[] = $resim_adi;
}
}// foreach kapat
for($say=0; $say < count($files); $say++) {

@$path =$path.",".$uploaded[$say]['buyuk']; //resimleri aralarına virgül koyarak yanyana birleştiriyoruz. Resimleri okuturken gerekli olacak.



}
}// kontrol kapat
$path1=ltrim($path,",");//en başta veya ensonda oluşan virgülü siliyoruz.
$path2=trim($path1,",");
if(mysql_query(" insert into tablo (resimler ) values ( '$path2')")){
echo "resimler Kaydedildi";
}
else{ echo "kayıt yapılamadı",mysql_error();}
}
?>


veri tabanından resimleri çekerken explode komutu ile virgüllerden bölerek gösterebilirsiniz.
http://forum.ceviz.net/php/17267-kutuphane-26.html den alıntıdır.
 
BBNET
Geri
Üst