$ _FILES [''] ['Name'] Yedekli ile basename fonksiyonunu kullanarak değil mi?

3 Cevap php

3 Cevap

Yani $ _FILES [''] ['name'] ile basename işlevini yerine gereksiz görünüyor kullanarak, olduğunu. Öyle değil mi?

Bamya @ gibi güvenlik nedenleriyle şeyden Hayır, ilk ve onun cevabını açıklar; ikincisi, IE eski sürümleri gibi, istemci tarafında dosyanın tam yolunu teslim etmek için kullanılır, çünkü

C:\Documents and Settings\Username\Desktop\Image_cropped.jpg

Bu davranış IE8 kadar yakın durdu. Şu this MSDN blog entry discovered via this SO question,

File Upload control

URLAction Internet Bölgesi için "Devre Dışı Bırak" olarak ayarlandığında Ayrıca, "dosyalarını yüklerken yerel dizin yolunu". Bu değişiklik Internet potansiyel duyarlı yerel dosya sistemi bilgi sızmasını önler. Örneğin, yerine tam yol C göndererek daha: \ users \ ericlaw \ belgeler \ gizli \ image.png, Internet Explorer 8 şimdi sadece dosya image.png sunacaktır.

HTTP istekleri sahte olabilir ve böylece başlığında sağlanan dosya da manipüle edilebilir.

Eğer sadece bir dosya adı verilir emin olmak istiyorsanız, değerini doğrulamak ya da sadece dosya almak için basename ile filtre.

Tam yolda basename () kullanarak örneğin /path/mydir/file.txt, döner file.txt. Ayrıştırmak için tam bir yol var ve sadece yolun son bölümünü almak istediğinizde kullanışlı.