Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Resim Upload [PHP]


Pluton

Öne çıkan mesajlar

Sabah 9'dan beridir uğraşıyorum. Bikaç ilerleme kaydettim ama ilerisine gidemedim. Ceviz'de kaçıncı topiğe bakıyorum kimbilir.

[spo]








Minimum 2 Resim Eklemelisiniz!..







*Lütfen bütün alanları doldurunuz.





[/spo]

Form'da bilgi gönderdiğim javascript inputu bu. İstediğim kadar dosya upload ettirebiliyorum. Burda sorun yok.

Bilgileri aldığım yer ise;

[spo]for($i=0;$i<=$_POST['sayac'];$i++) {
copy($_FILES['dosya_'.$i]['tmp_name'],$_FILES['dosya_'.$i]['name']);
echo "Yüklenen Resimler: ";
echo $_FILES['dosya_'.$i]['name'].$i."
";
}[/spo]

Şimdi yapmak istediklerimi ve denedikleri mi söliyeyim.

Upload ederken rastgele bir isim vermesi.
İstediğim dizine yükletebilmek
Ve dosya formatlarını ayarlayabilmek. Yani gif,jpg,png dışında bişiy yüklenememesini sağlamak.
$_FILES['dosya_'.$i]['name'].$i buradan gelen dosya ismini mysql'e kaydetmek.


Mysql Kaydettirmek İçin Şu Kodu Denedim:
[spo];$i++){
$resim = $_FILES['dosya_']['name'];
copy($_FILES['dosya_'.$i]['tmp_name'],$_FILES['dosya_'.$i]['name']);
echo "Yüklenen Resimler: ";
echo $_FILES['dosya_'.$i]['name'].$i."
";
$sql="insert into resim (link) values ('$resim')";
}
?> [/spo]

Dosya format izinlerini zımbırtısınıda şu kodla denedim:

[spo]if ($_FILES['dosya_']['name'] != "image/gif" &&
$_FILES['dosya_']['name'] != "image/jpeg" &&
$_FILES['dosya_']['name'] != "image/pjpeg" &&
$_FILES['dosya_']['name'] != "image/x-png")
{
echo "Dosya formatınız yanlış";
}
else
{
for($i=0;$i<=$_POST['sayac'];$i++){
$resim = $_FILES['dosya_'.$i]['name'].$i;
copy($_FILES['dosya_'.$i]['tmp_name'],$_FILES['dosya_'.$i]['name']);
echo "Yüklenen Resimler: ";
echo $_FILES['dosya_'.$i]['name'].$i."
";
$sql="insert into resim (link) values ('$resim')";
}
} [/spo]

Diğerlerine geçemedim. Neden çünkü bunları çözemedim:) yardımlarınız için şimdiden tşk ederim
Link to comment
Sosyal ağlarda paylaş

Resim yüklemek için şöyle bir şey kullanmışım ben:

[spo]// Haber resmini yükle
$target_path = "resimdb/";
$target_path = $target_path . basename($_FILES['haber_resmi']['name']);
if(file_exists($target_path)) {
echo '

' . basename($_FILES['haber_resmi']['name']) . ' adlı bir resim zaten var. Haber resmi için var olan resim kullanılacak.

';
$resim_youtube_adres = basename($_FILES['haber_resmi']['name']);
}
else if(move_uploaded_file($_FILES['haber_resmi']['tmp_name'], $target_path)) {
echo '

Haber resmi (' . basename( $_FILES['haber_resmi']['name'])
. ') resimdb klasörüne upload edildi.

';
$resim_youtube_adres = basename($_FILES['haber_resmi']['name']);
}
else {
echo '

Haber resmini upload ederken yamukluk oldu!';
$insert_onayi = 0;
}[/spo]

[ Mesaj 31 Mayıs 2007, Perşembe - 14:24 tarihinde, Mirage tarafından güncellenmiştir ]

Link to comment
Sosyal ağlarda paylaş

Ha doğru dimi kafam kazan gibi kusura bakmayın yaf :D

Şimdik isim değiştirme olayını şöyle yapıyorum.

[spo]for($i=0;$i<=$_POST['sayac'];$i++) {
$dizin = "resim/".$_FILES['dosya_'.$i]['name'];
$parcala = explode(".", $dosya_adi);
$dosya_yeni_adi = preg_replace('/[^a-z0-9_-]/i', '', $parcala[0]."_".(rand(0001, 9999)."".rand(00001, 9999))).".".$parcala[1];
copy($_FILES['dosya_'.$i]['tmp_name'],$dizin.$dosya_yeni_adi);
echo "Yüklenen Resimler: ";
echo $_FILES['dosya_'.$i]['name']."
";
}[/spo]

Tamam ismi değiştiriyo ama dosya ismi şöyle oluyo:

anasayfa.gif_94137646

ben istiyomki: 7861786128.gif olsun. İmageshack'deki gibi işte ya :D
Link to comment
Sosyal ağlarda paylaş

Öncelikle dosya isminde birden fazla nokta olabileceğini göz önünde bulundur.

Paticik.com.gif gibi bir resim koyulursa komik durumlarla karşılaşırsın yoksa.

$dosya_sonu = sizeof($parcala) - 1
// $dosya_sonu "jpeg" "gif" vs mi kontrol et
// $dosya_basi adında random isim üret
$dosya_yeni_adi = $dosya_basi . "." . $dosya_sonu
Link to comment
Sosyal ağlarda paylaş

Mirage o konuyu gördüydümdü ceviz'dede kafam nasıl bulanık anlatamam. Taz saolsun şöle bişiy yaptımda şimdi onuda entegre etmeyi denicem.
[spo]
for($i=0;$i<=$_POST['sayac'];$i++) {
$dizin = "resim/";
$parcala = explode(".", $dosya_adi);
$dosya_yeni_adi = "".rand(000001, 999999).".gif";
copy($_FILES['dosya_'.$i]['tmp_name'], $dizin.$dosya_yeni_adi);
echo "Yüklenen Resimler: ";
echo $_FILES['dosya_'.$i]['name']."
"; }[/spo]

Böyle oluyo


not: Resimde NOKTA bile olsa bütün hepsini değiştirdiği için sorun olmuyo denedim şimdikde :D

[ Mesaj 31 Mayıs 2007, Perşembe - 14:40 tarihinde, Pluton tarafından güncellenmiştir ]
Link to comment
Sosyal ağlarda paylaş

Şimdik şöyle oluyor. Diğer sorunum şuki. Bu resimleri girdiği zaman birde mysql'e bunların isimlerini girsin istiyorum onuda şöle yapıyorum ama girmiyo şerefsiz!

[spo]for($i=0;$i<=$_POST['sayac'];$i++) {
$dizin = "resim/";
$parcala = explode(".", $dosya_adi);
$dosya_yeni_adi = "".rand(000001, 999999).".gif";
copy($_FILES['dosya_'.$i]['tmp_name'], $dizin.$dosya_yeni_adi);
echo "Yüklenen Resimler: ";
echo $dosya_yeni_adi."
";
$sql="insert into resim (link) values ('$dosya_yeni_adi')"; }[/spo]
Link to comment
Sosyal ağlarda paylaş

dosya türünü hem uzantı hemde mime type göre yaparsan daha sağlıklı olur

if (($ext == "jpg") && ($_FILES[uploadedfile][type] == "image/jpeg"))


olarak

random file name olarakda

$n=32;
$chars="WERTYUIOPASDFGHJKLZXCVBNMabcdefghijklmnopqrstuvwxyz1234567890";
srand((double)microtime()*1000000);
$m=strlen($chars);
$i=$n;
while(--$i){$rand_filename.=substr($chars,rand()%$m,1);}
$rand_filename

kullanabilirsin.

not: yüklenmiş dosyalarıda kontrol edip db ye insert edersen daha iyi olur

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path))

[ Mesaj 31 Mayıs 2007, Perşembe - 15:35 tarihinde, Ragnar tarafından güncellenmiştir ]
Link to comment
Sosyal ağlarda paylaş

Son sorum :D

Yapmak istediğim;

2 tane tablom var. Mesajlar ve resimler adında. Form'a girilen bilgilerdeki eposta adresi ikisinede kaydoluyor. ve ayrıyeten birde resim upload ettiriyorum ve onların adresleride kaydoluyor.

[spo] $query ="SELECT * FROM resim ORDER BY 1 ASC";
$result = mysql_query($query);
while ( $row = mysql_fetch_assoc($result)) {
echo "".$row[link]."
"; } ?>[/spo]Buraya yazacağım şey şöyle bişiy olucak.

$row_DetailRS1['eposta'] ve $row['eposta'] 'nın eşit olduğu yerlerdeki $row[link] 'leri yazdır. Ama bir türlü olmuyor. Nasıl birşey yapabilirim acaba. Son denemem şöyleydi.

[spo] == $row['eposta'] ) {
$query ="SELECT * FROM resim ORDER BY 1 ASC";
$result = mysql_query($query);
while ( $row = mysql_fetch_assoc($result)) {
echo "".$row[link]."
"; } } ?>[/spo]
Link to comment
Sosyal ağlarda paylaş

Yine tam anlamadan cevap veriyorum yine saçma sapan bir cevap olma ihtimali var.

$query = "
SELECT link
FROM resim, mesaj // yada tablolarının ismi neyse
WHERE resim.eposta LIKE mesaj.eposta
ORDER BY 1 ASC"; //1 yerine sütun ismi yazarsan okunabilirliği arttırırsın

$urlTablosu = mysql_query($query);

while ($row = mysql_fetch_array($urlTablosu)) {
echo "".$row[link]."
"; } } ?>
}

[ Mesaj 31 Mayıs 2007, Perşembe - 18:29 tarihinde, Mirage tarafından güncellenmiştir ]

[ Mesaj 31 Mayıs 2007, Perşembe - 18:51 tarihinde, Mirage tarafından güncellenmiştir ]
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...