From: Ekin Meroglu (ekin@fisek.com.tr)
Date: Fri 27 May 2005 - 15:52:58 EEST
Merhaba;
> >
> > $handle = fopen($_FILES['dosya']['tmp_name'], "rb");
> > $contents = fread($handle, filesize($_FILES['dosya']['tmp_name']));
> > $data = addslashes($contents);
>
> Sorun burada sanirim, fread'le okudugunuz binary dosyaya addslashes() uygulamaniz bozuyor isi.. Boyle birseye ihtiyacınız yok, veritabindaki tipiniz buna uygun oldugu surece. Addslashes() string verilerin text alanlara kaydedilmesinde yararli/gerekli.
Burada ben uyumusum, addslashes yerine mysql_real_escape_string tavsiye etmem gerekiyormus, pardon.. Google sagolsun.
> > $sorgu_kelimesi="insert into dosya_1(dosya_adi,dosya_data,dosya_type)
> > values('$_FILES[dosya][name]','$data','$_FILES[dosya][type]')";
> > $sonuc = mysql_query($sorgu_kelimesi, $baglanti);
>
> Neden bircok kez tavsiye edildigi gibi dosyalari ait olduklari yerde - dosya sisteminde - tutmuyorsunuz? Sizi bircok isten kurtaracak, basarimi da arttiracak bence.. Veritabaninda dosya_adi, tipi, boyutlari gibi bilgileri girin, dosyalar dosya sisteminizde mutlu mesut yasasinlar..
Bu konuda yazdiklarinizi okuduktan sonra;
1- Yukardaki bolum calistiginda veritabanina basarili bir insert yapildigini gorebiliyor musunuz ? PhpMyAdmin ne diyor? $sonuc ne donduruyor ?
$sonuc = mysql_query($sorgu_kelimesi, $baglanti)
or die(mysql_error());
ile deneyebilirsiniz..
2 - Veritabanindaki alaninizin tipi BLOB ve uzunlugu dosyanizi kaydetmeye yeterli mi?
http://dev.mysql.com/doc/mysql/en/storage-requirements.html
Eger yeterli gelmiyorsa dosyanin sonu kesiliyor olabilir, longblob vs kullanamayi deneyebilirsiniz.
3 - Dosyayi okudugunuz kodu da buraya gonderebilir misiniz? belki de sorun okumada.. Bir onceki mailde soglediginizde haklisiniz, addslashes varsa stripslashes da olmali mantiken ...
Ekin Meroğlu
ekin@fisek.com.tr
-- FISEK ENSTITUSU - http://www.fisek.com.tr Ankara : 0.312.3857026 / Istanbul : 0.216.4284693 _______________________________________________ Linux-programlama mailing list Linux-programlama@liste.linux.org.tr http://liste.linux.org.tr/mailman/listinfo/linux-programlama