கணினிகள்கோப்பு வகைகளை

PHP: இப்போது சர்வர் கோப்பு பதிவேற்ற

PHP வழியாக கோப்புகளை பதிவிறக்குகிறது - ஒரு சுவாரசியமான, அவற்றில் மிகவும் கவனமாக அணுகி வேண்டும். இணையத்தில் நீங்கள் கோப்பு பதிவேற்ற செயல்படுத்த பல எடுத்துக்காட்டுகள் கண்டுபிடிக்க முடியும், ஆனால் அவர்கள் எல்லோரும் நல்ல மற்றும் பாதுகாப்பு கட்டுப்பாடுகளை சந்திக்க.

இத்தகைய விஷயங்களை அது ஒரு நீண்ட நேரம் எடுக்கும் கூட, ஒரு முடிவுக்கு கொண்டுவர வேண்டும். நீங்கள் குறியீடு ஒரு இடைவெளி விட்டு என்றால், உங்கள் முழு சர்வர் இணக்கம் ஏற்படுகிறது.

பாதுகாப்பு

PHP கொண்டு கோப்பை பதிவேற்ற சர்வர் மிகவும் எளிதாக மேற்கொள்ளப்படுகிறது வேண்டும். குறியீடு மிகவும் குறுகிய மற்றும் எளிது. வரிகளை ஒரு ஜோடி. எனினும், இந்த முறை ஆபத்தானது. அதிகமான நேரமும் விட்டு பாதுகாப்பு குறியீட்டு வரிகள்.

ஆபத்து நீங்கள் ஆய்வுகள் செய்யாவிட்டால், எந்த அபகரிப்பாளர் உங்கள் சர்வரில் தங்கள் ஸ்கிரிப்டுகள் பதிவேற்ற முடியும், அதாவது. இந்த வழக்கில், அது முழு அணுக வேண்டும். அவர் விரும்புகிறார் என்ன செய்ய முடியும்:

  • தகவல் அழித்தல்;
  • கோப்புகளை தளங்கள் அழித்தல்;
  • கோப்புகளை தளங்கள் மாற்றியமைக்கின்றன;
  • உங்கள் இணையதளத்தில் உங்கள் விளம்பரத்தை சேர்க்க;
  • வைரஸ்கள் பதிவிறக்க;
  • தங்கள் தளங்களில் உள்ள அனைவரையும் திருப்பி;
  • மற்றும் தாக்குபவர் கவலை வந்து மற்ற பல விஷயங்களை.

நீங்கள் எப்போதும் பார்வையாளருக்கு ஒரு கோப்பை பதிவிறக்கம் செய்ய முயற்சித்தால் என்று சரிபார்க்க வேண்டும். உதாரணமாக, நீங்கள் மட்டும் படங்களை பதிவேற்ற என்றால், அது தேவையான கோப்பு ஒரு படத்தை துல்லியமாக என்று சோதனை செய்தல் ஆகும். இல்லையெனில், நீங்கள் எதையும் கீழிறக்கும்.

சரிபார்ப்பு எவ்வாறு செயல்படுத்தலாம் என்பதை சரியாக, அது கோப்புகளை பதிவேற்றம் செய்ய நேரடி விசாரணையின் கொண்டு ஸ்கிரிப்டை காட்டப்படும்.

ஒரு PHP வடிவம் உருவாக்குதல்

கோப்பு பதிவேற்ற வடிவம் மிகவும் எளிது. உலவு பொத்தானை மற்றும் பதிவேற்ற பொத்தான்கள் காணவில்லை.

அது எளிது ஏன் என்றால் அதில், படிவங்கள் மாட்டேன் உருவாக்க விவரிக்கிறது. மேலும் வழிமுறைகளுக்கு நீங்கள் ஏற்கனவே HTML இன் அடிப்படை கோட்பாடுகளை (இல்லையெனில் நீங்கள் PHP மீது பதிவிறக்குவது பற்றிய தகவல் தேடும் மாட்டாது) என்று வைத்து கொள்வோம்.

ஆனால் வடிவத்தில் தரவு நீங்கள் enctype பண்பு சேர்க்க வேண்டும் என்பதை நினைவில்.

இல்லையெனில், கோப்பு கையாளரால் தரவு பரவும் முடியாது.

அது எப்படி இயங்குகிறது வேண்டும்?

நீங்கள் உலவு பொத்தானை கிளிக் செய்யும் போது நீங்கள் எங்கே ஒரு கோப்பைத் தேர்வு கேட்டுக் ஒரு பெட்டியில் பார்க்க வேண்டும்.

பின்னர் அது எங்கே கோப்பு அமைந்துள்ள ஒரு பாதை பெற வேண்டும்.

பாதை தோன்றாவிட்டால், செயலை மீண்டும் செய்யவும்.

பதிவிறக்கம் கோப்பு கையாளரால் கிளிக் செய்து பின்னர் எந்த தகவலும் கொடுக்க முடியும்.

உதாரணமாக, நீங்கள் கோப்பு "தான் இதனை" பெயர் வெற்றிகரமாகப் "இத்தகைய மற்றும்" கோப்புறையை தளங்களுக்கும் ஏற்றப்பட்டு விட்டது என்று கூறுகிறது அந்த வரி எழுத முடியும். நிச்சயமாக, கோப்பு பெயர் எப்போதும் வெவ்வேறு வழங்கப்படும்.

பொதுவாக, இந்த தகவல்களை சரிசெய்வதற்கான குறியீடு பயன்படுத்தப்படுகிறது. இவ்வாறு தரவு பரவுகிறது மற்றும் எழுதுதல்களுக்கும் விரும்பிய அடைவு ஏற்படும் உறுதிப்படுத்திக்கொள்ள முடிகிறது. என்று, கூட கோப்பு பெயர் சுட்டிக்காட்டினார் அல்ல. இந்த கூடுதல் தகவல் என்பதால் பயனர் தேவையில்லை என்று.

இது பயனர் பல கோப்புகளை பதிவிறக்கும் மட்டுமே என்றால் பெயரை வெளியீடு அர்த்தமுள்ளதாக. இத்தகைய வழக்கில், ஒரு சிறிய மேலும் கருதுகின்றனர். மேலே எங்களை பெற கூடாது.

சரிசெய்தல்

PHP கோப்பு பதிவேற்றம் வழங்கனுள் php.ini கோப்பு செய்யப்பட வேண்டும் சில அமைப்புகள், தேவைப்படுகிறது. இந்தக் கோப்பு அமைப்புகளை நிறைய கொண்டிருக்கிறது. அவர்கள் அனைவரும் நமக்குத் தேவையில்லை. file_uploads, upload_tmp_dir மற்றும் upload_max_filesize: நாங்கள் மூன்று கோடுகள் ஆர்வமாக.

இந்த அமைப்புகளை மட்டும் எந்த ஒரு, சர்வரில் உங்கள் தளங்களை அனைத்தையும் பாதிக்கும் என்பதை கவனத்தில் கொள்க. எனவே, நீங்கள் பயனர்கள் ஏற்ற வேண்டும் என்ற உண்மையின் அடிப்படையில் அதிகபட்ச அளவு அமைக்க. அது மிகவும் பெரிதாக அமைக்க பரிந்துரைக்கப்படவில்லை.

நீங்கள் இந்த அளவுருக்கள் உள்ள மதிப்புகள் மாற்ற, நீங்கள் சர்வரை மறுதொடக்கம் செய்ய வேண்டும். இல்லையெனில் அமைப்புகளை அவர்கள் சர்வர் சுமை நேரத்தில் படித்ததாக, விளைவையும் ஏற்படுத்தாது.

சர்வரில் எஸ்எஸ்ஹெச்சில் வழியாக இணைப்பதன் மூலம் பணியகத்தில் இந்த செய்ய முடியும். வெறுமனே கட்டளை service httpd restart நுழைய, பின்னர் அமைப்புகளை முதல் அமலுக்கு வருகிறது.

மற்றொரு முறை - ஐஎஸ்பி பேனல் மூலம் அல்லது பில்லிங் குழு சேவையளிப்போர் மூலமாகவோ மறுதொடக்கம்.

அணி கோப்பு

PHP இல் கோப்பு பதிவேற்ற வரிசை $ _FILES செய்யப்படுகிறது. அது நாம் பதிவிறக்க கோப்புகளை பற்றி தகவல்களைக் கொண்டுள்ளது.

வரிசை, பின்வரும் கோப்பு கையாளுதல் எழுதுவதற்கு போதுமான அளவு கொண்டுள்ளது என்ன தகவலை அறிய.

எந்த கோப்பு ஐத் தேர்ந்தெடுத்து "பதிவேற்றலாம்." கையாளரால் பக்கத்தில் $ _FILES சேமிக்கப்படுகிறது அந்த தகவலை காண்பிக்கும். மாறி மூலதன கடிதங்கள் முழுமையாக எழுதப்படுகிறது. PHP - ஒரு மொழி உணர்திறன் கொண்டது.

நீங்கள் பார்க்க முடியும் என, இந்த வரிசையில் துறைகளில் நிறைய உள்ளது. அவர்கள் அனைவரும் எங்களுக்கு முக்கியம். முதல் துறையில் இது உங்கள் கணினியில் பயன்படுத்தப்படுகிறது வடிவில் கோப்பு பெயர் உள்ளது.

வகை பத்தியில் கோப்பு வகை குறிப்பிடப்பட்டது. Tmp_name துறையில் தற்காலிக கோப்பு பெயர் ஒத்துள்ளது. ஸ்கிரிப்ட் முடிவுக்கு வந்த பின்னர் நீக்கப்படும்.

பிழை துறையில் ஒரு பிழை குறியீட்டுடன் இருக்கும். இந்த ஒரு சிறிய மேலும் இருந்தது. அளவு - பைட்களில் அளவு.

பிழைகள்

PHP கோப்பு பதிவேற்றம் மூலமாக மேற்கொள்ளப்படுகிறது எப்போதும் ஒரு பிழை குறியீடு அனுசரிக்கப்படுகிறது. பிழை செய்தி "பிழை" உள்ளிட்ட. ஸ்கிரீன்ஷாட் பிழை பூஜ்யமாக இருக்கிறது.

அனைத்து பிழைகள் மதிப்பு கவனியுங்கள்:

இது வழக்கமான HTML இல் குறிப்பிட முடியும் என்று அளவுரு பற்றி மேலே கூறப்பட்டது.

இங்கே பதிவேற்றிய கோப்பின் எண்ணிக்கை ஒரு எல்லை குறிக்கும் கோப்பு பதிவிறக்க ஒரு மாதிரி வடிவம் ஆகும்.

PHP: இப்போது கோப்பு பதிவேற்ற ஸ்கிரிப்ட்

அனைத்து நடைமுறையில் புரிகையில்? PHP இல் கோப்பு பதிவேற்ற பிரதியை கட்டளை ஏற்படுகிறது. மூல கோப்பு மற்றும் இலக்கு கோப்பு - கோப்புகளை இறக்கி எப்படி என்ற கேள்வி ஆர்வமாக இருந்தால், பதில் இரண்டு காரணிகள் பயன்படுத்துகிறது எளிய copy- உள்ளது.

ஆனால், மேலே குறிப்பிட்ட, அது பாதுகாப்பு காரணங்களுக்காக மட்டுப்படுத்தப்பட்ட இருக்க முடியாது. உதாரணமாக, கோப்பு என்ன மாதிரியான நாங்கள் கப்பல், நீங்கள் வரிசை $ _FILES உள்ள துறையில் வகை பயன்படுத்த முடியும் பாருங்கள். முதலாவதாக, முழு ஸ்கிரிப்ட் செல்ல ஆய்வு சமாளிக்க, பின்னர் அனுமதிக்க

நீங்கள் பயனர்கள் மட்டுமே GIF,, JPEG அல்லது PNG ஒரு தீர்மானம் கொண்டு ஒரு புகைப்படத்தை அப்லோடு அனுமதிக்க நினைக்கிறீர்கள் என்று வைப்போம். அது இப்படி இருக்க முடியும் என்பதைக் குறிப்பிடவும்.

என்றால் ($ _ கோப்புகள் [ 'file_upload'] [ 'வகை']! = "image / jpeg") {
"மன்னிக்கவும், நாம் மட்டும்: Gif பைல்ஸ் பதிவிறக்கம் செய்யும் வசதி எங்களிடம்" எதிரொலி;
வெளியேறும்;
}

நீங்கள் அனைத்து 3 வகையான கப்பல் விரும்பினால், வெறுமனே படத்தின் பிற வகை ஒரு கூடுதல் நிபந்தனை சேர்க்க.

நகல் (படம் 1, படம் 2): நகலெடுத்தல் இப்படி செய்யப்படுகிறது.

எங்கள் விஷயத்தில், வேலை சர்வர் பிசி பதிவிறக்குவதைக் போது, நீங்கள் அவ்வாறு செய்ய முடியும்

நகல் ($ _ கோப்புகள் [ 'file_upload'] [ "tmp_name"], "1.jpg")

அந்தக் கோப்பில் பெயர் 1.jpg நகலெடுக்கப்படும் போது விடுகிறார்கள். இது முற்றிலும் தவறானது. இந்த வழக்கில், அது ஒரு உதாரணம் மட்டுமே. கோப்பு பெயர் கோப்பைப் பொறுத்து வெவ்வேறு நீட்டிப்பு குறிப்பிட, மற்றும் குறிப்பிட எப்போதும் அவசியம்.

தீர்மானிக்க நீட்டிப்பில் வெவ்வேறு வழிகளில் இருக்க முடியும். இது அனைத்து புலமை டெவலப்பர் பொறுத்தது. (விநாடிகள் பத்தில் ஒரு வேறுபாடு) நீட்டிப்பு தீர்மானிக்க வேகமாக வழிகளில் ஒன்று - இந்த அடுத்த குறியீடு ஆகும்.

$ Path_info = pathinfo ($ _ கோப்புகள் [ 'photo1'] [ "பெயர்"]);

$ நீடிப்பு = $ path_info [ 'நீட்டிப்பு'];

மாறி $ நீடிப்பு நாங்கள் விரும்பிய நீட்டிப்பு சேமிக்கும். ஒரு கோப்பு பெயர் MD5 பயன்படுத்தி அங்கொன்றும் இங்கொன்றுமாக அமைக்க முடியும். நீங்கள் கோப்புகளை நிறைய பதிவிறக்க திட்டமிட்டால், அதை வெவ்வேறு கோப்புறைகளை அவர்களை கப்பல் நல்லது. எனவே அது சுலபமாக இருக்கும். குறிப்பாக, நீங்கள் தூய்மைப்படுத்த வேண்டும் என்றால்.

குறியீடு பின்வருமாறு இருக்கும் பதிவிறக்க.

/// புகைப்படம் உடன்

என்றால் ($ _FILES [ 'photo1'] [ 'tmp_name'] == பூஜ்ய)

{

எதிரொலி ( "<ப> <வலுவான> அறியாத கோப்பு.

பின்னோக்கி ... ");

வெளியேறும்;

}

///. சர்வரில் எந்த திட்டமும் நீங்கள் சொல்ல பெரிய கோப்புகளை (வீடியோ) ஏற்ற அனுமதியில்லை, ஆனால் படங்கள் உள்ளன, பயனர்கள் குறைக்க வேண்டும்

என்றால் (($ _FILES [ "photo1"] [ "அளவு"]> 1024 * 1024 * 2)

{

?>

அனுமதிக்கப்பட்ட அதிகபட்ச அளவை <வலுவான> 2 எம்பி

பின்னோக்கி ...

வெளியேறும்;

}

கோப்புறைகளை உருவாக்க //

// தற்போதைய மாதம் ஒரு கோப்புறையை உருவாக்க

என்றால் (! file_exists ( "படம் /". தேதி ( "எம்")))

{

எம்கேடிர் ( "படம் /" தேதி ( "எம்").);

}

// தற்போதைய நாள் ஒரு கோப்புறையை உருவாக்க

என்றால் (! file_exists ( "படம் /". தேதி ( "எம்"). "/". தேதி ( "டி")))

{

எம்கேடிர் ( "படம் /" தேதி ( "எம்") "/" தேதி ( "டி") ...);

}

/// கோப்பு நீட்டிப்பு

$ Path_info = pathinfo ($ _ கோப்புகள் [ 'photo1'] [ "பெயர்"]);

$ நீடிப்பு = $ path_info [ 'நீட்டிப்பு'];

/// கோப்புப்பெயரை உருவாக்க

$ Id = MD5 (தேதி ( "YMd"));

என்றால் (நகல் ($ _ கோப்புகள் [ 'photo1'] [ "tmp_name"], "படம் /". தேதி ( "எம்"). "/". தேதி ( "டி"). "/". $ ஐடி. $ நீடிப்பு) )

{

எதிரொலி ( "கோப்பு வெற்றிகரமாக ஏற்றியது");

}

/// மேற்கொண்டு எந்த நடவடிக்கையும் (டேட்டாபேஸ் நுழைவதற்கான, மற்றும் பல. என்)

}

பல கோப்புகளை

பல கோப்புகளை (PHP) வேலை பதிவேற்றும் வடிவம் கூடுதல் துறைகள் மூலம் ஏற்படுகிறது.

இந்த முறை அது எந்தக் கோப்புகளையும் எண்ணிக்கை கட்டுப்படுத்துகிறது என, மிகவும் நல்லது. மேலும், இது நிகழ்ச்சிகளில் கெட்ட வடிவமாகக் கருதப்படுகிறது. மாறும் எல்லாம் செய்ய முயற்சி.

சிறந்த விருப்பத்தை - அது ஒரு ஒற்றை பொத்தானை அழுத்துவதன் மூலம் ஒரே நேரத்தில் கோப்புகளை ஒரு பெரும் எண்ணிக்கையிலான ஒரு தேர்வாக இருக்கிறது.

இதை செய்ய, இந்த கோட் போன்ற வடிவத்தை உருவாக்க.

<படிவம் முறை = "போஸ்ட்" நடவடிக்கை = பெயர் = "upload_form" enctype = "பல்பகுதி / வடிவம்-தரவு" "இணைப்பு கையாளரால் தாக்கல் செய்ய">

<பி>

<உள்ளீடு வர்க்கம் = "form_upload" வகை = "கோப்பு" பெயர் = "கோப்பு 1 []" பல மதிப்பு = "கண்ணோட்டம்">

<உள்ளீடு வர்க்கம் = "form_upload" வகை = "submit" பெயர் = "upldFile" மதிப்பு = "சேர்" />

சொல் பல கூடுதலாக என்பதை நினைவில் கொள்க, மற்றும் பெயர் ஒரு வரிசை [] உள்ளதாகவும் கூறப்படுகிறது. இந்த வழக்கில், $ _FILES வரிசை சற்று வித்தியாசமாக இருக்கும். நீங்கள் வரிசைக்கு ஒரு வரிசை கிடைக்கும்.

சோதிக்க மீண்டும் var_dump ($ _ கோப்புகள்) பயன்படுத்த முடியும்;

உங்கள் எல்லா கோப்புகளும் இந்த போன்ற வரிசை வைக்கப்படும்:

  1. $ _FILES [ "கோப்பு 1"] [ "பெயர்"] [0]
  2. $ _FILES [ "கோப்பு 1"] [ "பெயர்"] [1]
  3. மற்றும் பல.

அடைப்புக்குறிக்குள் வரிசையில் கோப்பு எண் எழுதப்படுகிறது. பூஜ்ஜியத்தில் இருந்து எண்ணும். நாம் அதே வழியில் அவர்களை நடத்த வெறும் சுழற்சி கேட்டு குறியீட்டு சேர்த்து [$ நான்] இறுதியில் மேலே விவரிக்கப்பட்ட குறியீடு தொடர்புக் கொள்வதன் மூலம்.

$ நான் = 0;

போது ($ _FILES [ "கோப்பு 1"] [ "பெயர்"] [$ நான்] <> '')

{

/// மேலே பேஸ்ட்

}

இவ்வாறு, நீங்கள் கோப்புகளை ஒரு நிலையான எண் (கடைசி புகைப்படம்) உடன் பதிப்பு பயன்படுத்தினால் வழக்கமாக வழக்கு போன்ற குறியீட்டுடன் தேவையற்ற மீண்டும் இல்லாமல் ஒரு PHP கோப்பு பதிவேற்றம் ஒரு சுழற்சியில் சர்வர் மூலம் நடக்கும் வேண்டும்.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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