PDA

Tüm Versiyonu Göster : PHP İle Resim Yükleme



Burak Demir
17-08-2009, 19:38
İlk önce localhostta photo isimli klasör oluşturalım. Yüklediğimz fotoğraflar bu kalsöre kaydolsun.

Sql kodlarını PhpMyAdmin den import edelim.


-- phpMyAdmin SQL Dump
-- version 2.11.9
-- http://www.phpmyadmin.net
--
-- Anamakine: localhost
-- Üretim Zamanı: 04 Mayıs 2009 saat 11:58:40
-- Sunucu sürümü: 5.0.67
-- PHP Sürümü: 5.2.6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Veritabanı: `deneme`
--
CREATE DATABASE `deneme` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `deneme`;

-- --------------------------------------------------------

--
-- Tablo yapısı: `resim`
--

CREATE TABLE IF NOT EXISTS `resim` (
`id` int(11) NOT NULL auto_increment,
`yol` text character set utf8 collate utf8_turkish_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 ;

--
-- Tablo döküm verisi `resim`
--

INSERT INTO `resim` (`id`, `photo`) VALUES
(12, ' photo/Autumn_Leaves.jpg '),
(13, ' photo/Forest_Flowers.jpg '),
(14, ' photo/Oryx_Antelope.jpg ');
Şimdi resim.php adındaki php scriptimizi oluşturup şu kodları ekleyelim:


<?php
if(empty ($_POST['gonder']) ) {
?>
<form action="<? echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
resim sec:<input type="file" name="photo">
<input type="submit" name="gonder" value="gonder">
</form>
<?php
}
else
{
if(is_uploaded_file($_FILES['photo']['tmp_name']))
{
$dosyaadi = str_replace(" ", "_" , $_FILES['photo']['name']);
if(move_uploaded_file($_FILES['photo']['tmp_name'] , "photo/" . $dosyaadi))
{
echo "secilen " . $_FILES['photo']['name'] . " adli resim tasindi <br>";
// resmin isminde bulunan boşluklar _ ile değiştiriliyor
str_replace("", "_" , $_FILES['photo']['name']);

$url = "photo/" . $dosyaadi ." ";
echo "secilen <b>" . $url . "</b> adli resim<br>\n";

$db=mysql_connect ("localhost" , "root" , "1234");
if(!$db) {
echo "mysqle baglanamadim" . mysql_error($db). " ";
}
$ds=mysql_select_db("deneme");
if(!$ds) { echo "vt seçilemedi" . mysql_error($ds)." "; }

$veri = trim($url);
$sql="INSERT INTO resim (yol) VALUES(' " . $veri . " ')";
$vsorgu = mysql_query($sql);
if(isset($vsorgu) )
{
echo "<b> database'e tasindi</b>";
}
else
{
echo "resim database'e tasinamadi..!!";
}
} // Move upload
} // is upldad
else
{
echo "hata oldu";
}
} // Else

?>
Şimdi sıra geldi yüklenen resmi kullanıcıya göstermeye. goster.php scriptimizi oluşturup şu kodları ekleyelim:


<?php
$host="localhost";
$kullanici=""; // VERİTABANIKULLANICI ADINIZ
$sifre=" "; // VERİTABANI ŞİFRENİZ
$veritabani="deneme"; // vERİTABANI ADINIZ
mysql_connect($host , $kullanici , $sifre) or die ("Mysql Baglanamadi");
mysql_select_db($veritabani) or die ("Veritabanina Baglanilamadi");

$sql = "SELECT * FROM resim";
$sorgu=mysql_query($sql);
while($oku=mysql_fetch_object($sorgu) )
{
$a= $oku->yol;
echo $a;
echo "<img src=" . $a . " width='100' height='100'>";
}
?>Kullanımı:

goster.php 'de BUL:


$host="localhost"; // GENELDE BU ŞEKİLDEDİR. SORUN ÇIKARSA HOSTUNA BAŞVUR.
$kullanici=" "; // VERİTABANI KULLANICI ADINIZ
$sifre=" "; // VERİTABANI ŞİFRENİZ
$veritabani="deneme"; // VERİTABANI ADINIZ

Emre Güner
18-08-2009, 04:00
Teşekkürler paylaşım için .

Ali Gören
24-01-2011, 15:54
Elinize saglik guzel ancak 2 tane seyden bahsedeyim.

Yuklenen resimler hiç bir filtreleme olayina tabi degil.

RFU acigi meydana gelcektir ki gelirde... Birde madem MySQL destekli o zaman buna birde session değeri atayalim yani üye giriş yapmadan upload bölümünü açamasın... Aksi taktirde RFU kacinilmaz.

2. Olarakta tekrardan MySQL ayarlarini neden yazdiniz ki?




$host="localhost";
$kullanici=""; // VERİTABANIKULLANICI ADINIZ
$sifre=" "; // VERİTABANI ŞİFRENİZ
$veritabani="deneme"; // vERİTABANI ADINIZ
mysql_connect($host , $kullanici , $sifre) or die ("Mysql Baglanamadi");
mysql_select_db($veritabani) or die ("Veritabanina Baglanilamadi");



bu kismi config.php adinda bir dosyaya atardiniz... sonra bu kismi




include ('config.php'); // Ayar dosyamızı bulundugumuz sayfa çağırdık.



şeklinde çağırabilirdiniz... Buda gereksiz kod kalabalığını önlemiş olurdu.

Burak Demir
24-01-2011, 19:22
Konu başında belirtmediğim için kusura bakmayın. Bu kodlar herhangi bir upload sitesine gidecek kodlar değil o yüzden filtrelemeye gerek duymadım. Buradaki kodlar admin panelinde örneğin habere resim yüklemek için veya galeriye resim eklemek için vs. Yani admin paneli gibi korunan yerde kullanabilecek kodlar. O yüzden herhangi bir filtrelemeye ihtiyaç duymadım.

Ali Gören
24-01-2011, 19:58
Hmm. anladim o zaman sessiondan gecirmeniz daha saglikli olur. Yani kodlari session degerleriyle verin, kiside onu uygular tabi anlayacagi miktarda.