{"id":10177,"date":"2026-10-30T10:26:33","date_gmt":"2026-10-30T07:26:33","guid":{"rendered":"https:\/\/www.yunuskaytan.com\/?p=10177"},"modified":"2026-10-30T10:26:33","modified_gmt":"2026-10-30T07:26:33","slug":"php-de-dosya-yukleme-islemi","status":"publish","type":"post","link":"https:\/\/www.yunuskaytan.com\/en\/yk\/php-de-dosya-yukleme-islemi\/","title":{"rendered":"PHP&#8217;de Dosya Y\u00fckleme \u0130\u015flemi"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Web uygulamalar\u0131nda kullan\u0131c\u0131lar\u0131n profil foto\u011fraf\u0131 y\u00fcklemesi, belge payla\u015fmas\u0131 veya rapor g\u00f6ndermesi olduk\u00e7a yayg\u0131n gereksinimlerdir. PHP, bu i\u015flemleri ger\u00e7ekle\u015ftirmek i\u00e7in yerle\u015fik mekanizmalara sahiptir. Ancak dosya y\u00fckleme mekanizmas\u0131, do\u011fru kurgulanmad\u0131\u011f\u0131nda sunucu g\u00fcvenli\u011fini do\u011frudan tehlikeye atabilecek en kritik alanlardan biridir. Bu rehberde, PHP ile dosya y\u00fckleme mant\u0131\u011f\u0131n\u0131 temel seviyeden ele alacak ve g\u00fcvenli bir y\u00fckleme yap\u0131s\u0131n\u0131n nas\u0131l kurulaca\u011f\u0131n\u0131 inceleyece\u011fiz.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dosya Y\u00fckleme S\u00fcrecinin \u0130\u015fleyi\u015fi<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kullan\u0131c\u0131 taray\u0131c\u0131s\u0131ndan bir dosya se\u00e7ip formu g\u00f6nderdi\u011finde, dosya do\u011frudan hedef klas\u00f6re kaydedilmez. \u0130lk olarak sunucunun ge\u00e7ici dizinine (temporary directory) ge\u00e7ici bir isimle aktar\u0131l\u0131r. PHP beti\u011fi \u00e7al\u0131\u015ft\u0131\u011f\u0131 anda bu dosyan\u0131n meta verilerine eri\u015febilir, gerekli do\u011frulamalar\u0131 yapabilir ve uygun g\u00f6rd\u00fc\u011f\u00fc takdirde dosyay\u0131 kal\u0131c\u0131 dizine ta\u015f\u0131yabilir. Betik sonland\u0131\u011f\u0131nda ta\u015f\u0131nmayan t\u00fcm ge\u00e7ici dosyalar sistem taraf\u0131ndan otomatik olarak silinir.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bu s\u00fcrecin sa\u011fl\u0131kl\u0131 i\u015flemesi i\u00e7in sunucudaki <code>php.ini<\/code> yap\u0131land\u0131rma dosyas\u0131nda belirli y\u00f6nergelerin do\u011fru ayarlanm\u0131\u015f olmas\u0131 gerekir:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>file_uploads<\/code>: Dosya y\u00fckleme \u00f6zelli\u011finin a\u00e7\u0131k olup olmad\u0131\u011f\u0131n\u0131 belirler (varsay\u0131lan: On).<\/li>\n\n<li><code>upload_max_filesize<\/code>: Tek bir dosya i\u00e7in izin verilen maksimum boyutu tan\u0131mlar.<\/li>\n\n<li><code>post_max_size<\/code>: Tek bir POST iste\u011finde g\u00f6nderilebilecek toplam veri boyutunu belirler. Bu de\u011fer, <code>upload_max_filesize<\/code> de\u011ferinden b\u00fcy\u00fck olmal\u0131d\u0131r.<\/li>\n\n<li><code>upload_tmp_dir<\/code>: Dosyalar\u0131n ge\u00e7ici olarak tutulaca\u011f\u0131 dizini belirtir.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u0130stemci Taraf\u0131: HTML Formunun Haz\u0131rlanmas\u0131<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dosya y\u00fckleme i\u015fleminin ba\u015flayabilmesi i\u00e7in istemci taraf\u0131nda uygun bir HTML formu bulunmal\u0131d\u0131r. Standart formlardan farkl\u0131 olarak dosya g\u00f6nderiminde <code>enctype<\/code> niteli\u011fi zorunludur.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;form action=\"yukle.php\" method=\"POST\" enctype=\"multipart\/form-data\"&gt;\n    &lt;label for=\"dosya\"&gt;Y\u00fcklenecek Dosyay\u0131 Se\u00e7in:&lt;\/label&gt;\n    &lt;input type=\"file\" name=\"yuklenen_dosya\" id=\"dosya\"&gt;\n    &lt;button type=\"submit\"&gt;G\u00f6nder&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Yukar\u0131daki formda iki kritik nokta bulunur. \u0130lki, <code>method<\/code> de\u011ferinin mutlaka <code>POST<\/code> olmas\u0131d\u0131r; GET y\u00f6ntemi ile dosya ikili verileri (binary data) aktar\u0131lamaz. \u0130kincisi ise <code>enctype=\"multipart\/form-data\"<\/code> \u00f6zniteli\u011fidir. Bu \u00f6znitelik, form verilerinin metin d\u0131\u015f\u0131nda ikili veriler de i\u00e7erece\u011fini taray\u0131c\u0131ya bildirir. Bu tan\u0131m eksik oldu\u011funda dosya sunucuya iletilmez.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sunucu Taraf\u0131: $_FILES S\u00fcper K\u00fcreseli<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Form g\u00f6nderildi\u011finde, PHP gelen dosya bilgilerini <code>$_POST<\/code> yerine <code>$_FILES<\/code> s\u00fcper k\u00fcresel dizisi i\u00e7ine yerle\u015ftirir. HTML formundaki <code>name<\/code> \u00f6zniteli\u011fi bu dizinin anahtar\u0131 olur. \u00d6rne\u011fin, <code>$_FILES['yuklenen_dosya']<\/code> yap\u0131s\u0131 \u015fu alt anahtarlar\u0131 bar\u0131nd\u0131r\u0131r:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>name<\/code>: Dosyan\u0131n kullan\u0131c\u0131n\u0131n bilgisayar\u0131ndaki orijinal ad\u0131.<\/li>\n\n<li><code>type<\/code>: Taray\u0131c\u0131 taraf\u0131ndan bildirilen MIME t\u00fcr\u00fc (kullan\u0131c\u0131 manip\u00fclasyonuna a\u00e7\u0131kt\u0131r).<\/li>\n\n<li><code>tmp_name<\/code>: Dosyan\u0131n sunucuda bar\u0131nd\u0131r\u0131ld\u0131\u011f\u0131 ge\u00e7ici yol ve dosya ad\u0131.<\/li>\n\n<li><code>error<\/code>: Y\u00fckleme s\u0131ras\u0131nda olu\u015fan hata kodu (0 veya <code>UPLOAD_ERR_OK<\/code> hatas\u0131z oldu\u011funu g\u00f6sterir).<\/li>\n\n<li><code>size<\/code>: Dosyan\u0131n bayt (byte) cinsinden boyutu.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">G\u00fcvenli Dosya Y\u00fckleme Mimarisi<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kullan\u0131c\u0131dan gelen verilere hi\u00e7bir zaman do\u011frudan g\u00fcvenilmemelidir. Salt dosya uzant\u0131s\u0131n\u0131 veya taray\u0131c\u0131n\u0131n bildirdi\u011fi MIME t\u00fcr\u00fcn\u00fc kontrol etmek yeterli de\u011fildir. K\u00f6t\u00fc niyetli bir kullan\u0131c\u0131, bir PHP beti\u011fini <code>resim.jpg<\/code> gibi g\u00f6sterip y\u00fckleyebilir veya uzant\u0131 filtrelerini a\u015farak do\u011frudan web k\u00f6k dizininde zararl\u0131 kod \u00e7al\u0131\u015ft\u0131rabilir (Remote Code Execution &#8211; RCE).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">G\u00fcvenli bir dosya y\u00fckleme s\u00fcreci \u015fu ad\u0131mlar\u0131 i\u00e7ermelidir:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Hata Kontrol\u00fc<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Y\u00fckleme i\u015fleminin i\u015fletim sistemi veya sunucu limitleri nedeniyle kesintiye u\u011fray\u0131p u\u011framad\u0131\u011f\u0131 <code>$_FILES['yuklenen_dosya']['error']<\/code> \u00fczerinden denetlenmelidir.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Boyut S\u0131n\u0131rland\u0131rmas\u0131<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sunucu kaynaklar\u0131n\u0131n t\u00fckenmesini (Denial of Service) \u00f6nlemek i\u00e7in uygulama baz\u0131nda s\u0131k\u0131 bir dosya boyutu s\u0131n\u0131r\u0131 konulmal\u0131d\u0131r.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. MIME T\u00fcr\u00fc Do\u011frulamas\u0131<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Kullan\u0131c\u0131n\u0131n beyan etti\u011fi MIME t\u00fcr\u00fc yerine, dosyan\u0131n ikili i\u00e7eri\u011fi incelenmelidir. PHP&#8217;nin yerle\u015fik <code>finfo<\/code> (File Information) mod\u00fcl\u00fc, dosyan\u0131n bayt yap\u0131s\u0131n\u0131 okuyarak ger\u00e7ek MIME t\u00fcr\u00fcn\u00fc tespit eder.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Dosya Ad\u0131n\u0131n Yeniden Olu\u015fturulmas\u0131<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Kullan\u0131c\u0131n\u0131n g\u00f6nderdi\u011fi orijinal dosya ad\u0131 do\u011frudan kullan\u0131lmamal\u0131d\u0131r. Dizin ge\u00e7i\u015fi (Path Traversal) sald\u0131r\u0131lar\u0131n\u0131 engellemek ve \u00e7ak\u0131\u015fmalar\u0131 \u00f6nlemek i\u00e7in dosyalara rastgele, benzersiz isimler atanmal\u0131d\u0131r.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. Y\u00fckleme Dizinine \u00c7al\u0131\u015ft\u0131rma Yasa\u011f\u0131<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Dosyalar\u0131n y\u00fcklendi\u011fi klas\u00f6rde PHP betiklerinin \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131 engellenmelidir. En g\u00fcvenli y\u00f6ntem, dosyalar\u0131 web eri\u015fimine kapal\u0131 (web root d\u0131\u015f\u0131nda) bir dizinde tutmakt\u0131r.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Uygulama: G\u00fcvenli Dosya Y\u00fckleme Kodu<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A\u015fa\u011f\u0131daki \u00f6rnek, yaln\u0131zca PNG ve JPEG format\u0131ndaki resimlerin kabul edildi\u011fi, 2 MB boyut s\u0131n\u0131r\u0131na sahip ve dosya ad\u0131n\u0131 rastgele \u00fcreten g\u00fcvenli bir PHP beti\u011fidir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\nif ($_SERVER['REQUEST_METHOD'] === 'POST') {\n    if (!isset($_FILES['yuklenen_dosya']) || $_FILES['yuklenen_dosya']['error'] !== UPLOAD_ERR_OK) {\n        die('Dosya y\u00fcklenirken bir hata olu\u015ftu veya dosya se\u00e7ilmedi.');\n    }\n\n    $dosya = $_FILES['yuklenen_dosya'];\n\n    \/\/ 1. Boyut kontrol\u00fc (2 MB = 2 * 1024 * 1024 bayt)\n    $maksimumBoyut = 2097152;\n    if ($dosya['size'] &gt; $maksimumBoyut) {\n        die('Hata: Dosya boyutu 2 MB s\u0131n\u0131r\u0131n\u0131 a\u015f\u0131yor.');\n    }\n\n    \/\/ 2. Ger\u00e7ek MIME t\u00fcr\u00fc kontrol\u00fc\n    $izinVerilenTurler = [\n        'image\/jpeg' =&gt; 'jpg',\n        'image\/png'  =&gt; 'png'\n    ];\n\n    $finfo = new finfo(FILEINFO_MIME_TYPE);\n    $gercekMimeTuru = $finfo-&gt;file($dosya['tmp_name']);\n\n    if (!array_key_exists($gercekMimeTuru, $izinVerilenTurler)) {\n        die('Hata: Yaln\u0131zca JPEG ve PNG dosyalar\u0131 kabul edilmektedir.');\n    }\n\n    \/\/ 3. G\u00fcvenli dosya ad\u0131 \u00fcretimi\n    $uzanti = $izinVerilenTurler[$gercekMimeTuru];\n    $yeniDosyaAdi = bin2hex(random_bytes(16)) . '.' . $uzanti;\n\n    \/\/ 4. Hedef dizin kontrol\u00fc ve dosya ta\u015f\u0131ma\n    $hedefDizin = __DIR__ . '\/yuklemeler\/';\n    if (!is_dir($hedefDizin)) {\n        mkdir($hedefDizin, 0755, true);\n    }\n\n    $hedefYol = $hedefDizin . $yeniDosyaAdi;\n\n    if (move_uploaded_file($dosya['tmp_name'], $hedefYol)) {\n        echo 'Dosya ba\u015far\u0131yla y\u00fcklendi: ' . htmlspecialchars($yeniDosyaAdi, ENT_QUOTES, 'UTF-8');\n    } else {\n        echo 'Dosya kaydedilirken sunucu hatas\u0131 olu\u015ftu.';\n    }\n}\n?&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Yukar\u0131daki kod blo\u011funda:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>finfo<\/code> s\u0131n\u0131f\u0131 ile dosyan\u0131n ger\u00e7ek imzas\u0131 okunmu\u015f, sahte uzant\u0131 sald\u0131r\u0131lar\u0131 engellenmi\u015ftir.<\/li>\n\n<li><code>bin2hex(random_bytes(16))<\/code> fonksiyonu ile tahmin edilemez 32 karakterlik bir dosya ad\u0131 olu\u015fturulmu\u015ftur.<\/li>\n\n<li><code>move_uploaded_file()<\/code> fonksiyonu kullan\u0131lm\u0131\u015ft\u0131r. Bu fonksiyon, ta\u015f\u0131nacak dosyan\u0131n ger\u00e7ekten ge\u00e7erli bir HTTP POST y\u00fcklemesi olup olmad\u0131\u011f\u0131n\u0131 dahili olarak teyit eder. Dosyay\u0131 do\u011frudan <code>rename()<\/code> veya <code>copy()<\/code> ile ta\u015f\u0131mak g\u00fcvenlik zaafiyetlerine yol a\u00e7abilir.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Sonu\u00e7 ve S\u0131radaki Ad\u0131mlar<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PHP ile dosya y\u00fckleme i\u015flemlerinde form yap\u0131s\u0131n\u0131n do\u011fru ayarlanmas\u0131 i\u015fin yaln\u0131zca ilk ad\u0131m\u0131d\u0131r. As\u0131l sorumluluk, sunucu taraf\u0131nda dosyan\u0131n i\u00e7eri\u011fini denetlemek, boyut s\u0131n\u0131rlar\u0131n\u0131 i\u015fletmek ve rastgele isimlendirme yaparak olas\u0131 enjeksiyon sald\u0131r\u0131lar\u0131n\u0131 bertaraf etmektir. Bir sonraki a\u015famada, y\u00fcklenen g\u00f6rsellerin GD veya Imagick k\u00fct\u00fcphaneleriyle yeniden boyutland\u0131r\u0131larak temizlenmesini sa\u011flayabilir veya dosyalar\u0131 do\u011frudan bir bulut depolama servisine aktaracak mimarileri inceleyebilirsiniz.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>PHP&#8217;de g\u00fcvenli ve hatas\u0131z dosya y\u00fckleme s\u00fcre\u00e7lerini, form yap\u0131s\u0131ndan sunucu taraf\u0131 kontrollerine kadar t\u00fcm detaylar\u0131yla inceliyoruz.<\/p>","protected":false},"author":1,"featured_media":10178,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[301],"tags":[313,337,213,323],"class_list":["post-10177","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","tag-backend-gelistirme","tag-dosya-yukleme","tag-php","tag-web-guvenligi"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PHP&#039;de Dosya Y\u00fckleme \u0130\u015flemi - Yunus KAYTAN<\/title>\n<meta name=\"description\" content=\"PHP ile dosya y\u00fckleme i\u015flemlerini s\u0131f\u0131rdan \u00f6\u011frenin. HTML formu haz\u0131rlama, $_FILES kullan\u0131m\u0131 ve kritik g\u00fcvenlik \u00f6nlemleri ad\u0131m ad\u0131m anlat\u0131l\u0131yor.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.yunuskaytan.com\/en\/yk\/php-de-dosya-yukleme-islemi\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP&#039;de Dosya Y\u00fckleme \u0130\u015flemi - Yunus KAYTAN\" \/>\n<meta property=\"og:description\" content=\"PHP ile dosya y\u00fckleme i\u015flemlerini s\u0131f\u0131rdan \u00f6\u011frenin. HTML formu haz\u0131rlama, $_FILES kullan\u0131m\u0131 ve kritik g\u00fcvenlik \u00f6nlemleri ad\u0131m ad\u0131m anlat\u0131l\u0131yor.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.yunuskaytan.com\/en\/yk\/php-de-dosya-yukleme-islemi\/\" \/>\n<meta property=\"og:site_name\" content=\"Yunus KAYTAN\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-30T07:26:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.yunuskaytan.com\/wp-content\/uploads\/blog-kapak\/php-de-dosya-yukleme-islemi-kapak.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"yunuskaytan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"yunuskaytan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-de-dosya-yukleme-islemi\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-de-dosya-yukleme-islemi\\\/\"},\"author\":{\"name\":\"yunuskaytan\",\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/#\\\/schema\\\/person\\\/be66986fb499da83a5685de34f68d15a\"},\"headline\":\"PHP&#8217;de Dosya Y\u00fckleme \u0130\u015flemi\",\"datePublished\":\"2026-10-30T07:26:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-de-dosya-yukleme-islemi\\\/\"},\"wordCount\":932,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-de-dosya-yukleme-islemi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.yunuskaytan.com\\\/wp-content\\\/uploads\\\/blog-kapak\\\/php-de-dosya-yukleme-islemi-kapak.jpg\",\"keywords\":[\"backend geli\u015ftirme\",\"dosya yukleme\",\"php\",\"web guvenligi\"],\"articleSection\":[\"PHP\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-de-dosya-yukleme-islemi\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-de-dosya-yukleme-islemi\\\/\",\"url\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-de-dosya-yukleme-islemi\\\/\",\"name\":\"PHP'de Dosya Y\u00fckleme \u0130\u015flemi - Yunus KAYTAN\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-de-dosya-yukleme-islemi\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-de-dosya-yukleme-islemi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.yunuskaytan.com\\\/wp-content\\\/uploads\\\/blog-kapak\\\/php-de-dosya-yukleme-islemi-kapak.jpg\",\"datePublished\":\"2026-10-30T07:26:33+00:00\",\"description\":\"PHP ile dosya y\u00fckleme i\u015flemlerini s\u0131f\u0131rdan \u00f6\u011frenin. HTML formu haz\u0131rlama, $_FILES kullan\u0131m\u0131 ve kritik g\u00fcvenlik \u00f6nlemleri ad\u0131m ad\u0131m anlat\u0131l\u0131yor.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-de-dosya-yukleme-islemi\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-de-dosya-yukleme-islemi\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-de-dosya-yukleme-islemi\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.yunuskaytan.com\\\/wp-content\\\/uploads\\\/blog-kapak\\\/php-de-dosya-yukleme-islemi-kapak.jpg\",\"contentUrl\":\"https:\\\/\\\/www.yunuskaytan.com\\\/wp-content\\\/uploads\\\/blog-kapak\\\/php-de-dosya-yukleme-islemi-kapak.jpg\",\"width\":1200,\"height\":630,\"caption\":\"PHP'de Dosya Y\u00fckleme \u0130\u015flemi\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/yk\\\/php-de-dosya-yukleme-islemi\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\\\/\\\/www.yunuskaytan.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP&#8217;de Dosya Y\u00fckleme \u0130\u015flemi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/#website\",\"url\":\"https:\\\/\\\/www.yunuskaytan.com\\\/\",\"name\":\"Yunus KAYTAN\",\"description\":\"Bili\u015fim, Siber G\u00fcvenlik, Siber Su\u00e7lar ve Sosyal M\u00fchendislik\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.yunuskaytan.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/#organization\",\"name\":\"Bili\u015fim, Siber G\u00fcvenlik, Siber Su\u00e7lar ve Sosyal M\u00fchendislik\",\"url\":\"https:\\\/\\\/www.yunuskaytan.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.yunuskaytan.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/cropped-BILISIM-VE-SIBER-GUVENLIK.png\",\"contentUrl\":\"https:\\\/\\\/www.yunuskaytan.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/cropped-BILISIM-VE-SIBER-GUVENLIK.png\",\"width\":400,\"height\":109,\"caption\":\"Bili\u015fim, Siber G\u00fcvenlik, Siber Su\u00e7lar ve Sosyal M\u00fchendislik\"},\"image\":{\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.yunuskaytan.com\\\/#\\\/schema\\\/person\\\/be66986fb499da83a5685de34f68d15a\",\"name\":\"yunuskaytan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3caae7a5e52b2c1df0cbbb777ba7b421ad4777ac947e9320b5809e2d454ffdb4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3caae7a5e52b2c1df0cbbb777ba7b421ad4777ac947e9320b5809e2d454ffdb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3caae7a5e52b2c1df0cbbb777ba7b421ad4777ac947e9320b5809e2d454ffdb4?s=96&d=mm&r=g\",\"caption\":\"yunuskaytan\"},\"sameAs\":[\"http:\\\/\\\/www.yunuskaytan.com\"],\"url\":\"https:\\\/\\\/www.yunuskaytan.com\\\/en\\\/yk\\\/author\\\/yunuskaytan\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PHP'de Dosya Y\u00fckleme \u0130\u015flemi - Yunus KAYTAN","description":"PHP ile dosya y\u00fckleme i\u015flemlerini s\u0131f\u0131rdan \u00f6\u011frenin. HTML formu haz\u0131rlama, $_FILES kullan\u0131m\u0131 ve kritik g\u00fcvenlik \u00f6nlemleri ad\u0131m ad\u0131m anlat\u0131l\u0131yor.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.yunuskaytan.com\/en\/yk\/php-de-dosya-yukleme-islemi\/","og_locale":"en_US","og_type":"article","og_title":"PHP'de Dosya Y\u00fckleme \u0130\u015flemi - Yunus KAYTAN","og_description":"PHP ile dosya y\u00fckleme i\u015flemlerini s\u0131f\u0131rdan \u00f6\u011frenin. HTML formu haz\u0131rlama, $_FILES kullan\u0131m\u0131 ve kritik g\u00fcvenlik \u00f6nlemleri ad\u0131m ad\u0131m anlat\u0131l\u0131yor.","og_url":"https:\/\/www.yunuskaytan.com\/en\/yk\/php-de-dosya-yukleme-islemi\/","og_site_name":"Yunus KAYTAN","article_published_time":"2026-10-30T07:26:33+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.yunuskaytan.com\/wp-content\/uploads\/blog-kapak\/php-de-dosya-yukleme-islemi-kapak.jpg","type":"image\/jpeg"}],"author":"yunuskaytan","twitter_card":"summary_large_image","twitter_misc":{"Written by":"yunuskaytan","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.yunuskaytan.com\/yk\/php-de-dosya-yukleme-islemi\/#article","isPartOf":{"@id":"https:\/\/www.yunuskaytan.com\/yk\/php-de-dosya-yukleme-islemi\/"},"author":{"name":"yunuskaytan","@id":"https:\/\/www.yunuskaytan.com\/#\/schema\/person\/be66986fb499da83a5685de34f68d15a"},"headline":"PHP&#8217;de Dosya Y\u00fckleme \u0130\u015flemi","datePublished":"2026-10-30T07:26:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.yunuskaytan.com\/yk\/php-de-dosya-yukleme-islemi\/"},"wordCount":932,"commentCount":0,"publisher":{"@id":"https:\/\/www.yunuskaytan.com\/#organization"},"image":{"@id":"https:\/\/www.yunuskaytan.com\/yk\/php-de-dosya-yukleme-islemi\/#primaryimage"},"thumbnailUrl":"https:\/\/www.yunuskaytan.com\/wp-content\/uploads\/blog-kapak\/php-de-dosya-yukleme-islemi-kapak.jpg","keywords":["backend geli\u015ftirme","dosya yukleme","php","web guvenligi"],"articleSection":["PHP"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.yunuskaytan.com\/yk\/php-de-dosya-yukleme-islemi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.yunuskaytan.com\/yk\/php-de-dosya-yukleme-islemi\/","url":"https:\/\/www.yunuskaytan.com\/yk\/php-de-dosya-yukleme-islemi\/","name":"PHP'de Dosya Y\u00fckleme \u0130\u015flemi - Yunus KAYTAN","isPartOf":{"@id":"https:\/\/www.yunuskaytan.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.yunuskaytan.com\/yk\/php-de-dosya-yukleme-islemi\/#primaryimage"},"image":{"@id":"https:\/\/www.yunuskaytan.com\/yk\/php-de-dosya-yukleme-islemi\/#primaryimage"},"thumbnailUrl":"https:\/\/www.yunuskaytan.com\/wp-content\/uploads\/blog-kapak\/php-de-dosya-yukleme-islemi-kapak.jpg","datePublished":"2026-10-30T07:26:33+00:00","description":"PHP ile dosya y\u00fckleme i\u015flemlerini s\u0131f\u0131rdan \u00f6\u011frenin. HTML formu haz\u0131rlama, $_FILES kullan\u0131m\u0131 ve kritik g\u00fcvenlik \u00f6nlemleri ad\u0131m ad\u0131m anlat\u0131l\u0131yor.","breadcrumb":{"@id":"https:\/\/www.yunuskaytan.com\/yk\/php-de-dosya-yukleme-islemi\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.yunuskaytan.com\/yk\/php-de-dosya-yukleme-islemi\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.yunuskaytan.com\/yk\/php-de-dosya-yukleme-islemi\/#primaryimage","url":"https:\/\/www.yunuskaytan.com\/wp-content\/uploads\/blog-kapak\/php-de-dosya-yukleme-islemi-kapak.jpg","contentUrl":"https:\/\/www.yunuskaytan.com\/wp-content\/uploads\/blog-kapak\/php-de-dosya-yukleme-islemi-kapak.jpg","width":1200,"height":630,"caption":"PHP'de Dosya Y\u00fckleme \u0130\u015flemi"},{"@type":"BreadcrumbList","@id":"https:\/\/www.yunuskaytan.com\/yk\/php-de-dosya-yukleme-islemi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/www.yunuskaytan.com\/"},{"@type":"ListItem","position":2,"name":"PHP&#8217;de Dosya Y\u00fckleme \u0130\u015flemi"}]},{"@type":"WebSite","@id":"https:\/\/www.yunuskaytan.com\/#website","url":"https:\/\/www.yunuskaytan.com\/","name":"Yunus KAYTAN","description":"Information Technology, Cybersecurity, Cybercrimes and Social Engineering","publisher":{"@id":"https:\/\/www.yunuskaytan.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.yunuskaytan.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.yunuskaytan.com\/#organization","name":"Information Technology, Cybersecurity, Cybercrimes and Social Engineering","url":"https:\/\/www.yunuskaytan.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.yunuskaytan.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.yunuskaytan.com\/wp-content\/uploads\/2021\/07\/cropped-BILISIM-VE-SIBER-GUVENLIK.png","contentUrl":"https:\/\/www.yunuskaytan.com\/wp-content\/uploads\/2021\/07\/cropped-BILISIM-VE-SIBER-GUVENLIK.png","width":400,"height":109,"caption":"Bili\u015fim, Siber G\u00fcvenlik, Siber Su\u00e7lar ve Sosyal M\u00fchendislik"},"image":{"@id":"https:\/\/www.yunuskaytan.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.yunuskaytan.com\/#\/schema\/person\/be66986fb499da83a5685de34f68d15a","name":"yunuskaytan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3caae7a5e52b2c1df0cbbb777ba7b421ad4777ac947e9320b5809e2d454ffdb4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3caae7a5e52b2c1df0cbbb777ba7b421ad4777ac947e9320b5809e2d454ffdb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3caae7a5e52b2c1df0cbbb777ba7b421ad4777ac947e9320b5809e2d454ffdb4?s=96&d=mm&r=g","caption":"yunuskaytan"},"sameAs":["http:\/\/www.yunuskaytan.com"],"url":"https:\/\/www.yunuskaytan.com\/en\/yk\/author\/yunuskaytan\/"}]}},"_links":{"self":[{"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/posts\/10177","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/comments?post=10177"}],"version-history":[{"count":1,"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/posts\/10177\/revisions"}],"predecessor-version":[{"id":10182,"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/posts\/10177\/revisions\/10182"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/media\/10178"}],"wp:attachment":[{"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/media?parent=10177"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/categories?post=10177"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yunuskaytan.com\/en\/wp-json\/wp\/v2\/tags?post=10177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}