ኮምፒውተሮችየፋይል አይነቶች

ፒኤችፒ: ከአገልጋዩ ጋር የፋይል ሰቀላ

ፒኤችፒ በኩል ፋይሎችን በማውረድ - በጣም የሚስብ ጉዳይ, ይህም በጣም በጥንቃቄ መቅረብ አለበት. በኢንተርኔት ላይ ፋይል ሰቀላ ያለውን ትግበራ በርካታ ምሳሌዎች ማግኘት ይችላሉ, ነገር ግን ከእነርሱ ሁሉም መልካም ናቸው እና የደህንነት ደንቦችን ማሟላት.

እንዲህ ያሉት ነገሮች ረጅም ጊዜ ይወስዳል እንኳ ቢሆን, አንድ መደምደሚያ ማምጣት ያስፈልገናል. ኮዱን ውስጥ ክፍተት ከተዉት, ከዚያም መላውን አገልጋይ ጥቃት ደርሶበት ሊሆን ይችላል.

ደህንነት

ፒኤችፒ ጋር ፋይል መስቀል አገልጋዩ በጣም በቀላሉ ተሸክመው ነው ዘንድ. ኮድ በጣም አጭር እና ቀላል ነው. መስመሮች አንድ ሁለት. ይሁን እንጂ ይህ ዘዴ አደገኛ ነው. ብዙ ተጨማሪ ጊዜ እና ራቅ ደህንነት የኮድ መስመሮች.

አደጋው እናንተ ፍተሻ ማድረግ አይደለም ከሆነ, ማንኛውም አጥቂ አገልጋይ ላይ ያላቸውን ስክሪፕቶችን መስቀል ይችላል; ይህ ነው. በዚህ ሁኔታ, ይህም ሙሉ የመዳረስ መብት ይኖረዋል. እሱም የፈለገውን ማድረግ ይችላሉ:

  • ዳታቤዙ መሰረዝ;
  • ፋይሎች ጣቢያዎች ማጥፋት;
  • ፋይሎች ጣቢያዎች ይቀይሩ;
  • የእርስዎ ድር ጣቢያ የእርስዎን ማስታወቂያ ለማከል;
  • ቫይረሶችን ማውረድ;
  • ሁሉም ተጠቃሚዎች ጣቢያዎች ላይ እንዲያዞር;
  • እና የሚመጡትን ሌሎች ብዙ ነገሮች አጥቂ ያስታውሰናል.

ሁልጊዜ ተጠቃሚ አንድ ፋይል ለማውረድ የሚሞክር መሆኑን ማረጋገጥ አለባቸው. እርስዎ ብቻ ነው ምስሎችን መስቀል ከሆነ ለምሳሌ ያህል,, ይህ ፋይል ምስል በትክክል መሆኑን ማረጋገጥ አስፈላጊ ነው. አለበለዚያ, ምንም ነገር ያወርዳል.

በትክክል ማረጋገጫን እንዴት መተግበር እንደሚቻል, ፋይሎችን ለመስቀል ቀጥተኛ ምርመራ ስክሪፕት ጋር ይታያል.

አንድ ፒኤችፒ ቅጽ መፍጠር

የፋይል ሰቀላ ቅጽ በጣም ቀላል ነው. የማሰሻ አዝራር እና ሰቀላ አዝራሮች ይጎድላል.

ቀላል ስለሆነ, ቅጾች አይፈቅዱለትም መፍጠር እንደሚቻል ይገልጻል. ተጨማሪ መመሪያዎችን አስቀድመው ኤችቲኤምኤል መሰረታዊ ፅንሰ (አለበለዚያ ፒኤችፒ ላይ ለማውረድ በተመለከተ መረጃ ተጥቅሟል አይችልም ነበር) አለን ብለው ያስቡ.

ነገር ግን ቅጽ ላይ ያለውን ውሂብ አንተ enctype መገለጫ ማከል አለብህ መሆኑን ልብ ይበሉ.

አለበለዚያ, ፋይል ተቆጣጣሪ ላይ ውሂብ ሊተላለፍ አይችልም.

እንዴት መስራት አለባቸው?

የ የማሰሻ አዝራር ላይ ጠቅ ስታደርግ አንድ ፋይል መምረጥ ጠየቀ የት አንድ ሣጥን ማየት ይገባል.

ከዚያ በኋላ ይህ ፋይል የሚገኝበት መንገድ መቀበል ያስፈልጋል.

መንገድ ካልታየ, እንደገና እርምጃ ማከናወን.

የውርድ ፋይል ተቆጣጣሪ ላይ ጠቅ በኋላ ማንኛውም መረጃ መስጠት ይችላል.

ለምሳሌ ያህል, ፋይሉን "እንዲህ ሆነ እንዲሁ" ስም በተሳካ ሁኔታ በ "እንዲህ ዓይነት" አቃፊ ተሰቅሏል እንደሆነ ይናገራል መሆኑን መስመር መጻፍ ይችላሉ. እርግጥ ነው, የፋይል ስም ሁልጊዜ የተለያየ ይሰጠዋል.

በተለምዶ, ይህን መረጃ የስህተት ኮድ ጥቅም ላይ ይውላል. እንደዚሁ ውሂብ የሚተላለፍ እና ጽፏል የተፈለገውን ማውጫ ውስጥ የሚከሰቱ መሆኑን ማረጋገጥ ይቻላል. ይህ እንኳ የፋይል ስም አመልክተዋል አይደለም ነው. ይህ ተጨማሪ መረጃ ጀምሮ ተጠቃሚው አያስፈልገውም መሆኑን.

ይህም ውፅዓት ወደ ተጠቃሚው በርካታ ፋይሎችን እንደሚወርድ ከሆነ ብቻ ስም ስሜት ያደርገዋል. እንዲህ, ጥቂት ተጨማሪ ግምት ሁኔታ ነው. ከራሳችን ይልቅ አያገኙም እንመልከት.

በደንብ ማድረግ

ወደ አገልጋዩ ፒኤችፒ ፋይል ሰቀላ ውስጥ php.ini ፋይል ውስጥ መደረግ አለበት ይህም አንዳንድ ቅንብሮችን, ይጠይቃል. ይህ ፋይል ቅንብሮች ብዙ ይዟል. ሁሉም እኛ አያስፈልግዎትም. file_uploads, upload_tmp_dir እና upload_max_filesize: እኛ በሦስት መስመሮች ላይ ፍላጎት ናቸው.

እነዚህን ቅንጅቶች, በአገልጋዩ ላይ ብቻ ሳይሆን ማንኛውም ሰው በእርስዎ ጣቢያዎች ሁሉ ላይ ተጽዕኖ መሆኑን ልብ ይበሉ. ስለዚህ እናንተ ተጠቃሚዎች መጫን አለበት በሚለው ሐቅ ላይ ተመሥርቶ ከፍተኛ መጠን ማዘጋጀት. ይህ በጣም ትልቅ ለማዘጋጀት አይመከርም.

እነዚህን መለኪያዎች ውስጥ ያለውን ዋጋ መለወጥ በኋላ, ከአገልጋዩ እንደገና ማስጀመር አለብዎት. ወደ አገልጋዩ ጭነት ወቅት ማንበብ እንደ አለበለዚያ ቅንብሮች, አይተገበሩም.

አንተ ወደ አገልጋዩ ኤስኤስኤች በኩል በማገናኘት መሥሪያው ውስጥ ይህን ማድረግ ይችላሉ. በቀላሉ ትዕዛዝ አገልግሎት httpd ዳግም ያስገቡ, ከዚያም ቅንብሮች ይተገበራሉ.

ሌላው ዘዴ - ISP-ፓናል በኩል ወይም የክፍያ ፓኔል አቅራቢ በኩል ዳግም ማስጀመር.

የድርድር ፋይል

ፒኤችፒ ውስጥ ፋይል ሰቀላ ወደ ድርድር $ _FILES የሚደረገው ነው. እኛ ለማውረድ ያለውን ፋይሎች ስለ ሁሉ መረጃ ይዟል.

የሚከተለው ፋይል ተቆጣጣሪ ውስጥ መጻፍ በቂ ወደ ድርድር, ውስጥ የተካተቱ ምን ዓይነት መረጃ ማየት.

ማንኛውም ፋይል ይምረጡ ያድርጉ እና «ስቀል." የ ተቆጣጣሪ ገጽ ላይ $ _FILES ውስጥ ተከማችቷል መረጃ ያሳያል. ወደ ተለዋዋጭ ካፒታል ፊደሎች ጋር ሙሉ በሙሉ የተጻፈው ነው. ፒኤችፒ - ቋንቋ-ትብ.

ከዚህ ማየት እንደምትችለው, በዚህ ድርድር ውስጥ መስኮች ብዙ አለው. ሁሉም ለእኛ ጠቃሚ ናቸው. የመጀመሪያው መስክ በእርስዎ ኮምፒውተር ላይ የሚውለው ውስጥ መልክ የፋይል ስም ይዟል.

አይነት አምድ የፋይሉን አይነት አልተገለፀም. Tmp_name መስክ ጊዜያዊ የፋይል ስም ጋር ይዛመዳል. ስክሪፕቱ መጨረሻ በኋላ ይሰረዛል.

ስህተት መስክ ስህተት ኮድ ይዟል. ይህ ትንሽ ተጨማሪ ነበር. መጠን - ባይት ውስጥ ያለውን መጠን.

ስህተቶች

የ ፒኤችፒ ፋይል ሰቀላ አማካኝነት መካሄድ ሁልጊዜ ስህተት ኮድ ማስያዝ ነው. በ "ስህተት" ውስጥ ገብቶ ስህተት መልዕክት. የ ቅጽበታዊ ስህተት ዜሮ ነው.

ሁሉ ስህተቶች ዋጋ እንመልከት:

ይህ የተለመደው ኤችቲኤምኤል ውስጥ ሊገለጹ ይችላሉ የሚለውን ግቤት ስለ ከላይ ተባለ.

እዚህ ላይ የተሰቀለው ፋይል መጠን ገደብ ያመለክታል ያለውን ፋይል ለማውረድ የናሙና ቅጽ ነው.

ፒኤችፒ: የፋይል ሰቀላ ስክሪፕት

ሁሉ በተግባር በሚያከናውንበት? ፒኤችፒ ውስጥ ፋይል ሰቀላ ቅጂ ትእዛዝ የሚከሰተው. ምንጭ ፋይል እና መድረሻ ፋይል - አንድ ፋይል ማውረድ እንዴት ጥያቄ የሚፈልጉ ከሆነ, መልሱ ሁለት ግቤቶችን ይጠቀማል ቀላል copy- ነው.

ከላይ እንደተገለጸው ግን, ይህ ደህንነት ምክንያቶች ውሱን ሊሆን አይችልም. ለምሳሌ ያህል, እኛ ወደ መርከብ, አንተ ድርድር $ _FILES ውስጥ በመስክ አይነት መጠቀም ይችላሉ ፋይል ምን ዓይነት ይመልከቱ. በመጀመሪያ, የቁጥጥር ለመቋቋም; ከዚያም ሙሉ ስክሪፕት ወደ ላይ ለማንቀሳቀስ እንመልከት

የአምላክ ተጠቃሚዎች ብቻ GIF, JPEG ወይም PNG የሆነ መፍትሄ ጋር አንድ ፎቶ ለመስቀል መፍቀድ ይፈልጋሉ እንበል. ይህ ዓይነት ሊሆን ይችላል ያመልክቱ.

ከሆነ ($ _ ፋይሎች [ 'file_upload'] [ 'አይነት']! = "ምስል / gif») {
"ይቅርታ, ብቻ gif-ፋይሎችን ለማውረድ እንደግፋለን" ማስተጋባት;
መውጫ;
}

ሁሉንም 3 ዓይነቶች መርከብ የሚፈልጉ ከሆነ, በቀላሉ ምስል ወደ ሌላ ዓይነት አንድ ተጨማሪ ሁኔታ መጨመር.

ቅጂ (ምስል 1, ምስል 2): በመቅዳት እንደዚህ እንዳደረገ ነው.

በእኛ ሁኔታ, ሥራ ከአገልጋዩ ወደ ፒሲ ከ ማውረድ ጊዜ, እርስዎ ማድረግ ይችላሉ

ቅጂ ($ _ ፋይሎች [ 'file_upload'] [ "tmp_name"], "1.jpg")

ይህ ፋይል ስም 1.jpg ጋር ይገለበጣሉ ነው. ይህ ሙሉ በሙሉ ትክክል አይደለም. በዚህ ጉዳይ ላይ ብቻ አንድ ምሳሌ ነው. የፋይል ስም ፋይል ላይ በመመስረት, ቅጥያውን የተለያዩ ይጥቀሱ, እና እንዲገልጹ ምንጊዜም አስፈላጊ ነው.

ቅጥያውን የተለያዩ መንገዶች ሊሆን ይችላል ይወስናሉ. ይህ ሁሉ erudition ገንቢ ላይ ይወሰናል. (ሰከንዶች ከመስፈሪያው ልዩነት) ቅጥያውን ለመወሰን ፈጣኑ መንገድ አንዱ - ይህ በሚቀጥለው ኮድ ነው.

$ Path_info = pathinfo ($ _ ፋይሎች [ 'photo1'] [ "ስም"]);

$ Ext = $ path_info [ «ቅጥያ»];

ወደ ተለዋዋጭ $ ወደ ext እኛ የተፈለገውን ቅጥያ ያስቀምጣል. አንድ የፋይል ስም በዘፈቀደ በመጠቀም MD5 ላይ ሊዘጋጅ ይችላል. እናንተ ፋይሎችን ብዙ ለማውረድ እቅድ ከሆነ, በተለያዩ አቃፊዎች እነሱን ወደ መርከብ የተሻለ ነው. ስለዚህ ይበልጥ አመቺ ይሆናል. በተለይም, እናንተ ያነጻ የሚፈልጉ ከሆነ.

እንደሚከተለው ይሆናል ኮዱን ማውረድ.

/// ፎቶ ጋር

ከሆነ ($ _FILES [ 'photo1'] [ 'tmp_name'] == አልቦ)

{

ማሚቶ ( "

ያልታወቀ ፋይል.

ተመለስ ... »);

መውጫ;

}

///. በአገልጋዩ ላይ ማንኛውም ፕሮጀክት ትላላችሁ ትልልቅ ፋይሎች (ቪድዮ) መጫን አይፈቀድም ነው, ነገር ግን ብቻ ስዕሎች አሉ, እና ተጠቃሚዎች መገደብ ይኖርብናል

ከሆነ (($ _FILES [ "photo1"] [ "መጠን"]> 1024 * 2 * 1024)

{

?>

ከፍተኛውን የሚፈቀድ መጠን 2 ሜባ

ተመለስ ...

መውጫ;

}

አቃፊዎችን መፍጠር //

// የአሁኑ ወር አንድ አቃፊ መፍጠር

ከሆነ (! file_exists ( "img /". ቀን ( "M")))

{

mkdir ( "img /" ቀን ( "M").);

}

// የአሁኑ ቀን አንድ አቃፊ መፍጠር

ከሆነ (! file_exists ( "img /". ቀን ( "M"). "/". ቀን ( "መ")))

{

mkdir ( "img /" ቀን ( "M") "/" ቀን ( "መ") ...);

}

/// የፋይል ቅጥያ

$ Path_info = pathinfo ($ _ ፋይሎች [ 'photo1'] [ "ስም"]);

$ Ext = $ path_info [ «ቅጥያ»];

የፋይል ስም ማመንጨት ///

$ መታወቂያ MD5 (ቀን ( "YMd")) =;

ከሆነ (ቅጂ ($ _ ፋይሎች [ 'photo1'] [ "tmp_name"], "img /". ቀን ( "M"). "/". ቀን ( "መ"). "/". $ መታወቂያ. $ ext) )

{

ማሚቶ ( "በተሳካ ሁኔታ የተሰቀለ ፋይል");

}

/// ተጨማሪ እርምጃ (ጎታ ውስጥ ለመግባት, እና በጣም ላይ. N.)

}

በርካታ ፋይሎች

በርካታ ፋይሎች (ፒኤችፒ) በመስቀል መልክ ተጨማሪ መስኮች አማካኝነት የሚከሰተው.

ለማውረድ ፋይሎች ብዛት ይገድባል ይህ ዘዴ በጣም ጥሩ አይደለም. ከዚህም በላይ, ይህ ፕሮግራም ላይ መጥፎ መልክ ይቆጠራል. ተለዋዋጭ ነገር ለማድረግ ሞክር.

የ ተስማሚ አማራጭ - አንድ ነጠላ አዝራር በመጫን በአንድ ጊዜ ፋይሎች በርካታ ቁጥር አንድ ምርጫ ነው.

ይህን ለማድረግ, ይህን ኮድ የሚመስል ቅርጽ መፍጠር.

<ቅጽ ዘዴ = "POST" እርምጃ = ስም = "upload_form" enctype = "multipart / ቅጽ-ውሂብ" "አገናኝ ተቆጣጣሪ ፋይል">

<የግቤት class = "form_upload" አይነት = "ፋይል" ስም = "file1 []" በርካታ እሴት = «አጠቃላይ ዕይታ»>

<የግቤት class = "form_upload" አይነት = "ማቅረብ" ስም = "upldFile" እሴት = "አክል" />

ቃሉን በርካታ በተጨማሪም መሆኑን ልብ ይበሉ, እና ስም ድርድር [] ሆኖ የተሰጠ ነው. በዚህ ሁኔታ ውስጥ, $ _FILES ድርድር በመጠኑ የተለየ ይሆናል. የ ድርድር አንድ ድርድር ያገኛሉ.

እንደገና var_dump ($ _ ፋይሎች) መጠቀም ይችላሉ ለመፈተን;

ሁሉም የእርስዎ ፋይሎች እንደዚህ በድርድሩ ውስጥ ይቀመጣሉ:

  1. $ _FILES [ "file1"] [ "ስም"] [0]
  2. $ _FILES [ "file1"] [ "ስም"] [1]
  3. እንዲሁ ላይ.

በቅንፍ ውስጥ በድርድሩ ውስጥ ፋይል ቁጥር የተጻፈው ነው. ዜሮ ከ ብንቆጥር. እኛ ብቻ ዑደት መጠየቅ እና ኢንዴክስ በማከል [$ i] መጨረሻ ላይ ከላይ በተገለጸው ኮድ በማነጋገር, በተመሳሳይ መንገድ እንይዛቸዋለን.

$ እኔ = 0;

ሳለ ($ _FILES [ "file1"] [ "ስም"] [$ i] <> '')

{

/// ከላይ ኮድ ለጥፍ

}

እናንተ ፋይሎች የማይንቀሳቀስ ቁጥር (የመጨረሻው ፎቶ) ጋር ስሪት የሚጠቀሙ ከሆነ አብዛኛውን ጊዜ ጉዳይ ነው እንደ በመሆኑም እናንተ ኮድ አላስፈላጊ ድግግሞሽ ያለ አንድ ዑደት ውስጥ ከአገልጋዩ ጋር ፒኤችፒ ፋይል ሰቀላ አማካኝነት ይከሰታል አለባችሁ.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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