KompüterFayl növləri

PHP: server fayl upload

PHP vasitəsilə faylları Yükləmə - çox maraqlı halda, hansı çox diqqətlə yanaşmaq lazımdır üçün. İnternet fayl upload həyata keçirilməsi çoxsaylı nümunələr tapa bilərsiniz, lakin onların bütün yaxşı və təhlükəsizlik qaydalarına cavab.

Belə şeylər bir uzun zaman alır, hətta, bir nəticəyə gətirmək lazımdır. Siz kodu bir boşluğu tərk, onda bütün server güzəşt edilə bilər.

təhlükəsizlik

PHP ilə fayl yüklemek server çox asanlıqla həyata keçirilir olunur. code çox qısa və sadədir. xətlərinin yalnız bir neçə. Lakin, bu üsul təhlükəlidir. Daha çox vaxt və üz təhlükəsizlik kodu xətləri.

təhlükə siz yoxlamalar yoxdur, əgər, hər hansı bir təcavüzkar server öz scripts yüklemek bilər ki, var. Bu halda, tam erişim olacaq. O, istəyir nə edə bilər:

  • verilənlər bazası silmək;
  • files sites silmək;
  • faylları saytlar dəyişdirmək;
  • Sizin veb üçün reklam əlavə;
  • viruslar download;
  • bütün istifadəçilər sites yönlendirme;
  • və gəlib bir çox başqa şeylər təcavüzkarın ağla.

Siz həmişə istifadəçi üçün bir fayl download çalışır ki, yoxlamaq lazımdır. Yalnız images yüklemek Məsələn, bu fayl bir resim dəqiq olduğunu yoxlamaq lazımdır. Əks halda, heç bir şey download olacaq.

Məhz yoxlama həyata necə, bu faylları yüklemek üçün birbaşa imtahan script ilə nümayiş olunacaq.

PHP formu yaradılması

fayl upload forma çox sadədir. browse düyməsinə basın və upload düymələri itkin.

Bu asandır, çünki, formaları olmayacaq yaratmaq üçün necə təsvir edir. Əlavə təlimat artıq HTML əsas anlayışlar (başqa PHP yüklemek haqqında məlumat axtarır olmaz) var ki, güman.

Amma şəklində data enctype atributu əlavə etmək lazımdır ki, qeyd.

Əks halda, fayl handler haqqında məlumat ötürülən olmaz.

Necə işləmək lazımdır?

Siz göz düyməsinə basın zaman bir fayl seçmək üçün xahiş bir qutusu görəcəksiniz.

Bundan sonra bu fayl yerləşir bir yol almaq üçün tələb olunacaq.

yol görünür deyil, yenidən fəaliyyət həyata keçirir.

download fayl handler tıklayarak sonra hər hansı bir məlumat verə bilər.

Məsələn, fayl "belə və belə" adı uğurla "belə" qovluğunda götürmüş edilmişdir ki, xətt yaza bilərsiniz. Əlbəttə ki, fayl adı həmişə müxtəlif veriləcək.

Adətən, bu məlumat debug kod üçün istifadə olunur. Belə ki, data ötürülən və yazır istədiyiniz qovluğu baş doğrulamak mümkündür. Ki, hətta fayl adı göstərilməyib edilir. Bu əlavə məlumat ci ildən istifadəçi lazım deyil ki.

Bu çıxış istifadəçi birdən çox fayl downloads, yalnız adını əhəmiyyət kəsb edir. Belə, bir az daha hesab haldır. nin irəlidə özümüz almaq edək.

nizamlama

server PHP fayl upload php.ini faylında edilməlidir müəyyən parametrləri tələb edir. Bu fayl parametrləri bir çox ehtiva edir. Onlar bütün biz ehtiyac yoxdur. file_uploads, upload_tmp_dir və upload_max_filesize: Biz üç xətləri maraqlıyıq.

Bu parametrləri server yalnız hər hansı bir sites bütün təsir edəcək unutmayın. Buna görə də, istifadəçilər yüklemek üçün olacaq əsaslanır maksimum ölçüsünü təyin etmək. Bu çox böyük təyin etmək məsləhət deyil.

bu parametrləri dəyərləri dəyişdirmək sonra, server yenidən başladın lazımdır. onlar server yük zamanı oxumaq kimi Əks halda parametrlərini təsir etməyəcək.

Siz server SSH vasitəsilə birləşdirən konsol bunu edə bilərsiniz. Sadəcə komanda xidmət httpd yenidən daxil edin, və sonra parametrləri təsir edəcək.

Digər bir üsul - ISP-panel vasitəsilə və ya göndərmə panel provayderi vasitəsilə yenidən başladın.

array fayl

PHP fayl upload array $ _FILES edilir. Bu download faylları haqqında bütün məlumat ehtiva edir.

Aşağıdakı fayl handler yazmaq üçün kifayət qədər array, olan nə məlumat görmək üçün.

hər hansı bir fayl seçin və basın "bərpa edin." handler səhifə $ _FILES saxlanılır məlumat göstərilir. dəyişən hərflərlə tamamilə yazılmışdır. PHP - dil-həssas.

Gördüyünüz kimi, bu serialın sahələrində bir çox var. Onların hamısı bizim üçün vacibdir. ilk sahəsində sizin kompüter istifadə edən formada fayl adı var.

növü sütun fayl növü müəyyən. Tmp_name sahəsində müvəqqəti fayl adı uyğundur. script başa çatdıqdan sonra silinəcək.

səhv sahəsində bir səhv baş kodu var. Bu bir az daha idi. Size - bayt ölçüsü.

səhvlər

PHP fayl yükləmə vasitəsilə həyata keçirilir həmişə səhv kodu ilə müşayiət olunur. "Səhv" daxil bir səhv baş beledir. screenshot səhv sıfır.

bütün səhvlərin dəyəri hesab:

Bu adi HTML müəyyən edilə bilər parametri haqqında yuxarıda ifadə edildi.

Burada Yüklənilən fayl məbləği bir limit göstərir faylı yükləmək üçün bir nümunə formasıdır.

PHP fayl upload script

bütün praktikada həyata keçirilən kimi? PHP fayl upload surəti əmr verir. mənbə fayl və təyinat faylı - Bir faylı yükləmək üçün necə sual istəyirsinizsə, cavab iki parametrləri istifadə edir sadə copy- edir.

Yuxarıda qeyd edildiyi kimi, o təhlükəsizlik səbəblərə görə məhdud ola bilməz. Məsələn, biz gəmi, siz array $ _FILES sahəsində növü istifadə edə bilərsiniz fayl nə cür oldu. Birincisi, yoxlama ilə məşğul və sonra tam script hərəkət edək

Siz istifadəçilər yalnız GIF, JPEG və ya PNG qərarı ilə bir şəkil yüklemek üçün imkan istəyirəm deyirlər. bu kimi ola bilər göstərir.

if ($ _ FILES [ 'file_upload'] [ 'növü'] = "image / gif") {
"Təəssüf ki, biz yalnız Gif-Files yüklənərkən dəstək" echo;
exit;
}

bütün 3 növ gəmi istəyirsinizsə, sadəcə image digər növü üçün əlavə şərt əlavə edin.

surəti (şəkil 1, image 2) Copying belə edilir.

Bizim halda, iş server PC yükləyir zaman bunu edə bilərsiniz

surəti ($ _ FILES [ 'file_upload'] [ "tmp_name"] "1.jpg")

Bu fayl adı 1.jpg ilə kopyalanır edir. Bu tamamilə doğru deyil. Bu halda, yalnız bir nümunəsidir. fayl adı fayl asılı olaraq uzadılması müxtəlif daxil, müəyyən etmək həmişə lazımdır.

uzadılması müxtəlif yolları ola bilər müəyyən edir. Bu, bütün mülahizə geliştirici asılıdır. (Saniyə onda bir fərq) uzadılması müəyyən etmək üçün sürətli yollarından biri - bu növbəti kodu.

$ Path_info = pathinfo ($ _ FILES [ 'photo1'] [ "adı"]);

$ Ext = $ path_info [ 'uzadılması'];

dəyişən $ daxili biz istədiyiniz uzadılması saxlamaq olacaq. A fayl adı təsadüfi istifadə MD5 müəyyən edilə bilər. Siz faylları bir çox download planlıyorsanız, müxtəlif qovluq onları gəmi daha yaxşıdır. Belə ki, daha rahat olacaq. Xüsusilə, siz təmizləmək istəyirsinizsə.

belə olacaq kodu yükləmək üçün.

/// şəkil ilə

if ($ _FILES [ 'photo1'] [ 'tmp_name'] == null)

{

echo ( "

Unknown file.

Geri ... ");

exit;

}

///. server hər hansı bir layihə üçün təşəkkür De böyük faylları (video) yüklemek üçün icazə verilir, lakin yalnız şəkillər var və istifadəçilər məhdudlaşdırmaq lazımdır

əgər (($ _FILES [ "photo1"] [ "ölçüsü"]> 1024 * 2 * 1024)

{

?>

maksimum icazə ölçüsü 2 MB

Geri ...

exit;

}

qovluq yaratmaq //

// cari ayın bir qovluq yaratmaq

əgər (! file_exists ( "img /". tarix ( "M")))

{

mkdir ( "img /" tarix ( "M").);

}

// cari gün bir qovluq yaratmaq

əgər (! file_exists ( "img /". tarix ( "M"). "/". tarix ( "d")))

{

mkdir ( "img /" tarix ( "M") "/" tarix ( "d") ...);

}

/// fayl uzantısı

$ Path_info = pathinfo ($ _ FILES [ 'photo1'] [ "adı"]);

$ Ext = $ path_info [ 'uzadılması'];

fayl yaratmaq ///

$ Id md5 (tarixi ( "YMD")) =;

əgər (surəti ($ _ FILES [ 'photo1'] [ "tmp_name"] "img /". tarix ( "M"). "/". tarix ( "d"). "/". $ id. $ daxili) )

{

echo ( "uğurla daşıyanlar Fayl");

}

/// hər hansı bir fəaliyyət (bazasında giriş, və s. N.)

}

birdən çox fayl

birdən çox fayl (PHP) yüklemek şəklində əlavə sahələri vasitəsilə baş verir.

download faylları sayı məhdudlaşdırır Bu üsul çox yaxşı deyil. Bundan başqa, proqramlaşdırma pis forması hesab olunur. dinamik hər şeyi edin.

ideal variant - bu bir düyməsini basaraq bir dəfə faylları bir çox sayda seçimdir.

Bunu etmək üçün, bu kodu bir forma yaratmaq.

sözü çox əlavə Qeyd edək ki, adı bir sıra [] kimi verilir. Bu halda, $ _FILES array az fərqli olacaq. Siz array bir sıra olacaq.

yenidən var_dump ($ _ faylları) istifadə edə bilərsiniz test etmək;

Bütün faylları oxşar array yerləşdiriləcək:

  1. $ _FILES [ "file1"] [ "adı"] [0]
  2. $ _FILES [ "file1"] [ "adı"] [1]
  3. Və s.

mötərizədə serialda fayl sayı yazılmışdır. sıfırdan hesablanması. Biz yalnız dövrü xahiş və index əlavə [$ i] sonunda yuxarıda təsvir kodu əlaqə, eyni şəkildə müalicə.

$ I = 0;

isə ($ _FILES [ "file1"] [ "adı"] [$ i] <> '')

{

/// yuxarıda yapışdırıb

}

Siz faylları bir statik sayı (son şəkil) ilə versiyasını istifadə əgər adətən olduğu kimi Belə ki, siz kodu lazımsız təkrar olmadan bir dövrü server PHP fayl upload vasitəsilə baş olacaq.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 az.birmiss.com. Theme powered by WordPress.