• 26-04-2008, 20:21:43
    #1
    Arkadaşlar bir Resmi upload edip boyutlandırıp db ye nasıl kayıt ettirebilirim çok aradım ama bi türlü bulmadım genelde hep thumbs mantığı var yardımcı oalbilirseniz sevinirim.
  • 26-04-2008, 20:26:46
    #2
    Üyeliği durduruldu
    https://www.r10.net/php/156276-kendi-...sunuyorum.html

    Bu scripti ben yazdım Resmi DB ye yazıyor. İnceleyebilirsin.
  • 26-04-2008, 22:47:39
    #3
    Daha açık ve net bişey yok mu ya da sadece upload kısımları kod olarak alabilirsm çünkü kendi uygulmama eklediğim de çalışmıyor çözemiyorum ya deli olucam
  • 26-04-2008, 23:04:59
    #4
    Şurada işe yarar bi makale buldum ama olmadı bi daha ararız;
    Tıkla
  • 26-04-2008, 23:13:46
    #5
    Üyeliği durduruldu
    hemen php.netten kopyala yapıştır geliştiriyorum
    upload kısmı basit form açıp php.net/move_upload_file
    yapıyosunuz daha sonra

    <?php

    $im = imagecreatefromgif( 'test.gif' );
    // or $im = imagecreatefromjpeg( 'test.jpg' );
    $mw = 360; // max width
    $mh = 360; // max height
    $ow = imagesx( $im );
    $oh = imagesy( $im );
    if( $ow > $mw || $oh > $mh ) {
    if( $ow > $oh ) {
    $tnw = $mw;
    $tnh = $tnw * $oh / $ow;
    } else {
    $tnh = $mh;
    $tnw = $tnh * $ow / $oh;
    }
    } else {
    // although within size restriction, we still do the copy/resize process
    // which can make an animated GIF still
    $tnw = $ow;
    $tnh = $oh;
    }
    // the document recommends you to use truecolor to get better result
    $imtn = imagecreatetruecolor( $tnw, $tnh );
    // if the image has transparent color, we first extract the RGB value of it,
    // then use this color to fill the thumbnail image as the background. This color
    // is safe to be assigned as the new transparent color later on because it will
    // be filtered by imagecopyresize.
    $originaltransparentcolor = imagecolortransparent( $im );
    if(
    $originaltransparentcolor >= 0 // -1 for opaque image
    && $originaltransparentcolor < imagecolorstotal( $im )
    // for animated GIF, imagecolortransparent will return a color index larger
    // than total colors, in this case the image is treated as opaque ( actually
    // it is opaque )
    ) {
    $transparentcolor = imagecolorsforindex( $im, $originaltransparentcolor );
    $newtransparentcolor = imagecolorallocate(
    $imtn,
    $transparentcolor['red'],
    $transparentcolor['green'],
    $transparentcolor['blue']
    );
    // for true color image, we must fill the background manually
    imagefill( $imtn, 0, 0, $newtransparentcolor );
    // assign the transparent color in the thumbnail image
    imagecolortransparent( $imtn, $newtransparentcolor );
    }
    // copy/resize as usual
    imagecopyresized( $imtn, $im, 0, 0, 0, 0, $tnw, $tnh, $ow, $oh );
    imagegif( $imtn, 'test.thumbnail.gif' );
    imagedestroy( $im );
    imagedestroy( $imtn );

    ?>

    şu kodu kendinize göre düzenleyin
    dosya adresinide mysqle atmak karışık değil.
    basit bölümleri atladım çünkü uygulama eklemeyi filan
    denemişsiniz az çok bilginiz var sanırsam.
  • 26-04-2008, 23:58:33
    #6
    YuqseLX adlı üyeden alıntı: mesajı görüntüle
    Şurada işe yarar bi makale buldum ama olmadı bi daha ararız;
    Tıkla
    saol bunu gördüm denedim ama bu dbye yazıyor ama upload edemedim bi türlü


    şöyle anlatayım

    <?
    include "ayar.php";
    TabloAc();
    require "eb.upload.php";
    
    ?>
    
    
    <form id="form1" name="form1" method="POST" action="kaydet.php"  ENCTYPE="multipart/form-data">
      <table width="575" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
          <td width="278">&nbsp;</td>
          <td width="436"><table width="390" height="168" border="0" align="center" cellpadding="0" cellspacing="0">
            <tr>
              <td colspan="2">Başlık   
                <input name="makale_baslik" type="text" value="" size="40" /></td>
            </tr>
            <tr>
              <td colspan="2">Kategori: 
                <select name="kat_id">
               <?php
    $iler2 = mysql_query("SELECT kat_id, kat_baslik FROM kategoriler ORDER BY kat_id asC");
    while($yaz2 = mysql_fetch_array($iler2))
    {
    	echo "<option value=\"". $yaz2['kat_id'] ."\">". $yaz2['kat_baslik'] ."</option>";
    												
    												}
    ?>
              </select></td>
            </tr>
            <tr>
              <td colspan="2">
    
    
    <INPUT TYPE="file" name="resim">
    
    
        </tr>
            <tr>
              <td colspan="2">	<textarea id="elm1" name="makale_metni" rows="18" cols="100" style="width: 80%"></textarea></td>
            </tr>
            <tr>
              <td width="217" align="center"><label>
                <input type="submit"  value="G&Ouml;NDER" />
              </label></td>
              <td width="219" align="center"><input type="reset" value="TEMİZLE" /></td>
            </tr>
          </table></td>
        </tr>
        
        <tr>
          <td colspan="2"><div align="center"><a href="index.php">ADMIN SAYFASI</a></div></td>
        </tr>
      </table>
    </form>
    <?
    TabloKapat();
    ?>
    <?php
    
      if( is_uploaded_file( $_FILES['upload']['tmp_name'] ) ) //gonderilen dosya temp kalsorüne taşınmış mı?
            {
                $img_data = getimagesize( $_FILES['upload']['tmp_name'] ); //resim datalarını oku
                
                if( $img_data['2'] != 1 || $img_data['2'] != 2 ) //1= gif 2 = jpg 
                {                                                ///dosya beklediğimiz formatta mı kontrol et
                    $source = $_FILES['upload']['tmp_name'];
                    //hedef dosya adı kullanılıyor olabilir
                    //ona göre kullanılmayan bir isim yarat
                    $dest1 = generateUniqeNameForProductImage( $_FILES['upload']['name'] );
                    $dest = "../devamed/upload/".$dest1;
                    
                    if( !move_uploaded_file( $source, $dest ) )
                    {
                        $err .= "Dosya upload hatası KOD :1 <br />";
                    }
                    else //resim büyükse küçüğünü oluştur
                    {
                        if( $img_data['0'] > 150 && $img_data['1'] > 150 )
                        {
                            resize_img( "../devamed/upload/",$dest1 );
                        }
                    }
                }
                else
                {
                    $err .= "Sadece .jpg ve .gif formatl&yacute; resimleri upload edebilirsiniz. <br />";
                }        
            }
            else
            {
                $err .= "Dosya upload hatas&yacute; KOD :3 <br />";
            }
    		
    function generateUniqeNameForProductImage( $filename )
    {
        return generateUniqeFileName( "../devamed/upload/", $filename );
    }  		
    		
    		function generateUniqeFileName( $dir, $filename )
    {
        $new_filename = $filename;
        do
        {
            if( file_exists( $dir.$new_filename ) )
            {
                $clk = true;
                $alfabe="abcdefghijkmnpqrstuvwxyz23456789";
                $temp = substr(str_shuffle($alfabe),0,9);
                $new_filename = $temp.$filename;
            }
            else
            {
                $clk = false;
            }
            
        }while( $clk );
    
        return $new_filename;
    } 
    ?>
    ben nerde yanlış yaptım böyle hatamı bulmak ya da doğru olanların üzerinden gitmek daha kolay olur
  • 27-04-2008, 00:27:48
    #7
    Üyeliği durduruldu
    arkadaşım
    class.upload.php - verot.net

    bu sınıfı incelemeni tavsiye ederim... İçinde dökümanı mevcut..
  • 27-04-2008, 14:16:36
    #8
    Üyeliği durduruldu
    Arkadaşımız resimleride mysqla yazmak istiyor. Db ye kayıt olucak.
    Copy veya Move_uploaded normal upload yontemleridir.
    Bir Örnek Yazayım:
    <?
    if($_POST['yolla']){
    $veri=$_POST['form_verisi'];  //$_POST ile veriyi değişkenimize alalım.
    $data=fread(fopen($veri,"rb"),filsize($veri));  //Formdan Gelen Veriyi Okuyoruz.
    /*
    *Formdan Gelen Veriyi Okuduk. Simdi Bu Binary Veriyi Mysqla Yazdıralım.
    */
    mysql_connect("localhost" , "kullanici" , "sifre");
    mysql_select_db("Databaseniz");
    $sql=mysql_query("insert into resimtablosu(resimverialanı) values('$veri')");
            /*
            *Burada Sqlnin Çalıştırılıp Çalıştırılmadıgını Kontrol Ediyoruz.
            */
            if($sql){
             echo"Resim Veritabanına Başarı İle Yazıldı<br><br>";
             echo"<a href=index.php><b><font color=red>Anasayfaya Dönmek İçin Tıklayın</font></b></a>";
             }
             else{
             echo"<font size=3 color=red><b>Bir Hata Oluştu!</b></font>"; 
             }
    }
    else{
    //Form buraya
    ?>
    <center>Mr.Kurtbey - Mysql'a Veri Yazma Formu<br>
    <form action="<?=$PHP_SELF?>" method="post">
    Dosyayı Seçin:<input type="file" name="form_verisi"><br>
    <input type="submit" name=yolla>
    </form>
    </center>
    <?
    }
    ?>
    Ve simdi mysql databasemizde bu uplad formu için gerekli tabloları oluşturalım.
    Mesela resimtablosu isminde bir tablo , resim_id ve resimveri ismindede 2 alan oluşturalım.
    resim _id alanını AUTO_INCREMENT (otomatik id) yapalım.
    resimverialanı alanını ise longblob yapalım.
    Ve Verileri Mysql a yazan upload formumuz hazır.Bunu Siz Daha çok tablo ekleyerek geliştirebilirsiniz.

    --------------------------------------------------------------
    Formu yaptık. Şimdide bu mysqldeki resimleri çekip tekrar resim olarak okumak(göstermek istiyorsunuz).Mesela resimleri id numaralarına gore örneğin index.php?resim_id=1 gibi çekelim.


    <?
    header("content-type: image/gif"); //Gösterecegimiz Resimin tipi
    
    if($resim_id){
    mysql_connect("localhost" , "kullanici" , "sifre");
    mysql_select_db("Databaseniz");
    $sql=mysql_query("select resimverialanı from resimtablosu where resim_id=$resimid");
    $resimcek=mysql_fetch_array($sql);
    //Resmi gösterelim.
    echo $resimcek['resimverialanı'];
    }
    else{
    echo"Böyle Bir Resim Yok";
    }
    ?>
    Açık bir şekilde anlatmaya çalıştım.Anlamayanlar Başlık Altında Sorabilir.

    ,
    Resim Boyutlandırma içinse AhmetPasha arkadaşımızın verdiği kodları kullanabilirsiniz.