కంప్యూటర్లు, ఫైల్ రకాలను
PHP: సర్వర్కు ఫైల్ అప్లోడ్
PHP ద్వారా ఫైళ్లను డౌన్లోడ్ - చాలా ఆసక్తికరమైన విషయం, ఇది చాలా జాగ్రత్తగా వద్దకు తప్పక. ఇంటర్నెట్ న మీరు ఫైల్ అప్లోడ్ అమలు అనేక ఉదాహరణలు వెదుక్కోవచ్చు, కానీ వాటిని అన్ని మంచి మరియు భద్రతా నిబంధనలకు అనుగుణంగా.
ఇటువంటి విషయాలు అది ఒక కాలం పడుతుంది కూడా ఉంటే, ఒక నిర్ధారణకు తీసుకుని అవసరం. మీరు కోడ్ లో ఒక ఖాళీ వదిలి ఉంటే, అప్పుడు మీ మొత్తం సర్వర్ పడవచ్చు.
భద్రత
PHP తో ఫైలు అప్లోడ్ సర్వర్ చాలా సులభంగా చేపట్టారు ఉంది. కోడ్ చాలా చిన్న మరియు సాధారణ ఉంది. రేఖల జంట. అయితే, ఈ పద్ధతి ప్రమాదకరం. ఎక్కువ సమయం మరియు భద్రత దూరంగా లైన్స్ ఆఫ్ కోడ్.
ప్రమాదం మీరు పరీక్షలు చేయకపోతే, ఏ అటాకర్ మీ సర్వర్ వారి స్క్రిప్ట్స్ అప్లోడ్ కాలేదు, ఆ ఉంటుంది. ఈ సందర్భంలో, అది పూర్తి ప్రాప్తిని కలిగి ఉంటుంది. అతను తనకు పనులను చేయవచ్చు:
- డేటాబేస్ తొలగించండి;
- ఫైళ్లు సైట్లు తొలగించడం;
- ఫైళ్లు సైట్లు పంచాల్సిన
- మీ వెబ్ సైట్ కు మీ ప్రకటన జోడించడానికి;
- వైరస్లు డౌన్లోడ్;
- వారి సైట్లలో అన్ని వినియోగదారులు దారి;
- మరియు రాబోయే అనేక ఇతర విషయాలు దాడి చూసుకొని.
మీరు ఎల్లప్పుడూ వినియోగదారు కోసం ఒక ఫైల్ డౌన్లోడ్ ప్రయత్నించే తనిఖీ చేయాలి. ఉదాహరణకు, మీరు మాత్రమే చిత్రాలు అప్లోడ్, అది అవసరం ఫైల్ చిత్రం కచ్చితంగా అని ధ్రువీకరించడం. లేకపోతే, మీరు ఏదైనా డౌన్లోడ్ చేస్తుంది.
ధృవీకరణ అమలు ఎలా సరిగ్గా, అది ఫైళ్లు అప్లోడ్ ప్రత్యక్షంగా పరీక్షించకుండానే స్క్రిప్ట్ తో, చూపబడుతుంది.
ఒక PHP ఫారం సృష్టిస్తోంది
ఫైలు అప్లోడ్ రూపం చాలా సులభం. బ్రౌజ్ బటన్ మరియు బటన్లు అప్లోడ్ మిస్సింగ్.
ఇది సులభం ఎందుకంటే ఎలా, రూపాలు కాదు సృష్టించడానికి వివరిస్తుంది. తదుపరి సూచనల మీరు ఇప్పటికే HTML యొక్క ప్రాథమిక భావనలను (లేకపోతే మీరు PHP లో డౌన్లోడ్ గురించి సమాచారం కోసం చూస్తున్న కాదు) భావిస్తాయి.
కానీ రూపంలో డేటా మీరు enctype గుణం జోడించడానికి అవసరం గమనించండి.
లేకపోతే, ఫైలు హ్యండ్లర్పై పంపవలసిన కాదు.
అది ఎలా పని చేయాలి?
ఆ తరువాత అది ఎక్కడ ఫైల్ ఉన్న ఒక మార్గం అందుకున్న అవసరం.
మార్గం కనిపించడం లేదు ఉంటే, మళ్ళీ చర్యను.
డౌన్లోడ్ ఫైల్ హ్యాండ్లర్ క్లిక్ చేసిన తర్వాత ఏ సమాచారాన్ని ఇస్తుంది.
ఉదాహరణకు, మీరు ఫైల్ "మరియు కనుక" పేరు విజయవంతంగా "అటువంటి మరియు" ఫోల్డర్కు అప్లోడ్ చేయబడింది అని చెపుతుంది లైన్ రాయడం. వాస్తవానికి, ఫైలు పేరు ఎల్లప్పుడూ వివిధ ఇవ్వబడుతుంది.
సాధారణంగా, ఈ సమాచారం డీబగ్ కోడ్ ఉపయోగిస్తారు. అందువలన ఇది పంపవలసిన మరియు వ్రాస్తూ కావలసిన డైరెక్టరీ ఏర్పడతాయి అని నిర్థారించవచ్చు. ఆ ఉంది, కూడా ఫైల్ పేరు సూచించబడలేదు. ఈ అదనపు సమాచారాన్ని నుండి యూజర్ అవసరం లేదు.
ఇది అర్థవంతంగా అవుట్పుట్ యూజర్ బహుళ ఫైళ్లను డౌన్లోడ్ మాత్రమే పేరును చేస్తుంది. ఇటువంటి, ఒక చిన్న మరింత పరిగణలోకి కేసు. యొక్క ముందుకు మనలోని లేదు లెట్.
సర్దుబాటు
సర్వర్ కు PHP ఫైలు అప్లోడ్ php.ini ఫైలు చేయాలి కొన్ని సెట్టింగులు, అవసరం. ఈ ఫైలు సెట్టింగులు చాలా కలిగి. వారు అన్ని మేము అవసరం లేదు. file_uploads, upload_tmp_dir మరియు upload_max_filesize: మేము మూడు పంక్తులు ఆసక్తి.
దయచేసి ఈ సెట్టింగ్లను కేవలం ఏ ఒకటి, సర్వర్లో మీ సైట్లు అన్ని ప్రభావితం గమనించండి. అందువలన, మీరు వినియోగదారులు లోడ్ ఉంటుంది వాస్తవం ఆధారంగా గరిష్ట పరిమాణం సెట్. ఇది చాలా పెద్ద సెట్ సిఫారసు చేయబడలేదు.
మీరు ఈ పారామితులు విలువలు మార్చడానికి, మీరు సర్వర్ పునఃప్రారంభించవలసి ఉంటుంది. లేకపోతే సెట్టింగులు వారు సర్వర్ లోడ్ సమయంలో చదివినట్లుగా, ప్రభావితం కావు.
మీరు సర్వర్కు SSH ద్వారా కనెక్ట్ ద్వారా కన్సోల్ లో చేయవచ్చు. కేవలం కమాండ్ సేవ httpd restart ఎంటర్ చేసి, ఆపై సెట్టింగ్లు ప్రభావం పడుతుంది.
మరో పద్ధతి - ISP ప్యానెల్ ద్వారా లేదా బిల్లింగ్ ప్యానెల్ ప్రొవైడర్ ద్వారా ఒక పునఃప్రారంభమైన.
అర్రే ఫైలు
PHP లో ఫైలు అప్లోడ్ శ్రేణి $ _FILES ద్వారా జరుగుతుంది. ఇది మేము డౌన్లోడ్ ఫైళ్లను గురించి అన్ని సమాచారాన్ని కలిగి ఉంది.
శ్రేణి, క్రింది దస్త్ర నిర్వహక రాయడానికి తగినంత ఏ సమాచారం ఉంది చూడటానికి.
ఏ ఫైల్ను ఎంచుకోండి మరియు క్లిక్ "అప్లోడ్". హ్యాండ్లర్ పేజీలో $ _FILES లో నిల్వ చేయబడిన సమాచారాన్ని ప్రదర్శిస్తుంది. వేరియబుల్ పెద్ద అక్షరాలతో పూర్తిగా రాస్తారు. PHP - భాషా సెన్సిటివ్.
మీరు చూడగలరు గా, ఈ శ్రేణి లో రంగాలలో చాలా ఉంది. వాటిని అన్ని మాకు ముఖ్యమైనవి. మొదటి ఫీల్డ్ మీ కంప్యూటర్లో ఉపయోగిస్తారు దీనిలో రూపంలో ఫైలు పేరును కలిగి ఉంది.
రకం కాలమ్ ఫైలు రకం పేర్కొనబడింది. Tmp_name రంగంలో తాత్కాలిక ఫైల్ పేరు సూచించదు. స్క్రిప్ట్ ముగిసిన తర్వాత తొలగించబడుతుంది.
లోపం ఫీల్డ్ ఒక లోపం కోడ్ కలిగి. ఈ ఒక చిన్న మరింత ఉంది. పరిమాణం - బైట్లు పరిమాణానికి.
లోపాలు
PHP ఫైలు అప్లోడ్ ద్వారా చేపట్టారు ఎల్లప్పుడూ ఒక లోపం కోడ్ కలిసి ఉంటుంది. ఒక దోష సందేశం "దోషం" లో ప్రవేశించింది. స్క్రీన్ షాట్ను పంపు లోపం సున్నా.
అన్ని లోపాలు విలువ పరిగణించండి:
ఇక్కడ అప్లోడ్ చేసిన ఫైల్ యొక్క మొత్తం ఒక పరిమితి సూచిస్తుంది ఫైలు, డౌన్లోడ్ ఒక నమూనా రూపం.
PHP: ఫైలు అప్లోడ్ స్క్రిప్ట్
అన్ని ఆచరణలో చేపట్టారు వంటి? PHP లో ఫైలు అప్లోడ్ కాపీని ఆదేశం ఏర్పడుతుంది. మూలం ఫైల్ మరియు గమ్యం ఫైలు - మీరు ఒక ఫైల్ డౌన్లోడ్ ఎలా ప్రశ్న ఆసక్తి ఉంటే, సమాధానం సాధారణ copy-, రెండు పారామితులు ఉపయోగిస్తుంది.
కానీ, పైన పేర్కొన్నట్లు, ఇది భద్రతా కారణాల కొరకు పరిమిత ఉండకూడదు. ఉదాహరణకు, మేము ఓడ, మీరు శ్రేణి $ _FILES లో క్షేత్ర రకం ఉపయోగించవచ్చు ఫైలు యొక్క ఏ రకమైన తనిఖీ. మొదటి, యొక్క పూర్తి స్క్రిప్ట్ కొనసాగండి తనిఖీ ఎదుర్కోవటానికి లెట్, ఆపై
యొక్క మీరు మాత్రమే GIF, JPEG లేదా PNG ఒక తీర్మానం తో ఒక ఫోటో అప్లోడ్ వినియోగదారుకు అనుమతించడానికి అనుకుందాం. ఇది ఈ లాంటివే సూచించండి.
ఉంటే ($ _ FILES [ 'file_upload'] [ 'రకం'] = "చిత్రం / gif") {
ప్రతిధ్వని "క్షమించండి, మేము మాత్రమే డౌన్లోడ్కు మద్దతు Gif ఫైల్స్";
నిష్క్రమణ;
}
మీరు అన్ని 3 రకాల రవాణా అనుకుంటే, కేవలం చిత్రం యొక్క ఇతర రకం ఒక అదనపు పరిస్థితి జోడించండి.
కాపీ (చిత్రం 1, చిత్రం 2): కాపీయింగ్ వంటి ఈ జరుగుతుంది.
మా సందర్భంలో, పని సర్వర్కు PC నుండి డౌన్లోడ్ ఉన్నప్పుడు, మీరు అలా చేయవచ్చు
కాపీ ($ _ FILES [ 'file_upload'] [ "tmp_name"], "1.jpg")
ఆ ఫైల్ పేరు 1.jpg తో కాపీ అవుతుంది, ఉంది. ఈ పూర్తిగా సరైనది కాదు. ఈ సందర్భంలో, ఇది కేవలం ఒక ఉదాహరణ. ఫైలు పేరు ఫైలు బట్టి, వివిధ పేర్కొనండి, మరియు తెలుపుటకు పొడిగింపు ఎప్పుడూ అవసరం.
నిర్ణయించడం పొడిగింపు విభిన్న మార్గాల్లో ఉంటుంది. ఇది అన్ని పాండిత్యానికి డెవలపర్ ఆధారపడి ఉంటుంది. (సెకన్లు పదులు ఒక తేడా) ఎక్స్టెన్షన్ వివరించడానికి వేగవంతమైన మార్గాలు ఒకటి - ఈ తదుపరి కోడ్.
$ Path_info = pathinfo ($ _ FILES [ 'Photo1'] [ "పేరు"]);
$ Ext = $ path_info [ 'పొడిగింపు'];
వేరియబుల్ $ ext మేము కావలసిన పొడిగింపు నిల్వ చేస్తుంది. ఒక ఫైల్ పేరు ఉపయోగించి MD5 యాదృచ్ఛికంగా అమర్చవచ్చు. మీరు ఫైళ్లను చాలా డౌన్లోడ్ ప్లాన్ ఉంటే, అది వివిధ ఫోల్డర్లను వాటిని రవాణా ఉత్తమం. కనుక ఇది మరింత సౌకర్యవంతంగా ఉంటుంది. ముఖ్యంగా, మీరు ప్రక్షాళన అనుకుంటే.
కోడ్ క్రింది విధంగా ఉంటుంది డౌన్లోడ్.
/// ఫోటో
ఉంటే ($ _FILES [ 'Photo1'] [ 'tmp_name'] == NULL)
{
ఎకో ( "
తెలియని ఫైల్. strong> p> తిరిగి ... p> "); నిష్క్రమణ; } ///. సర్వర్ లో ఏ ప్రాజెక్ట్ కోసం మీరు చెప్పే పెద్ద ఫైళ్లను (వీడియో) లోడ్ అనుమతించబడుతుంది, కానీ మాత్రమే చిత్రాలు ఉన్నాయి, మరియు వినియోగదారులు పరిమితం అవసరం ఉంటే (($ _FILES [ "Photo1"] [ "పరిమాణం"]> 1024 * 1024 * 2) { ?> గరిష్ట అనుమతి పరిమాణం 2 MB strong> తిరిగి ... p> నిష్క్రమణ; } // ఫోల్డర్లను సృష్టించడం // ప్రస్తుత నెల ఒక ఫోల్డర్ సృష్టించడం (! File_exists ( "img /". తేదీ ( "M"))) ఉంటే { mkdir ( "img /" తేదీ ( "M").); } // ప్రస్తుత రోజు యొక్క ఒక ఫోల్డర్ సృష్టించుకోండి ఉంటే (! file_exists ( "img /". తేదీ ( "M"). "/". తేదీ ( "D"))) { mkdir ( "img /" తేదీ ( "M") "/" తేదీ ( "D") ...); } /// ఫైల్ పొడిగింపు $ Path_info = pathinfo ($ _ FILES [ 'Photo1'] [ "పేరు"]); $ Ext = $ path_info [ 'పొడిగింపు']; /// filename ఉత్పత్తి $ Id = MD5 (తేదీ ( "YMd")); ఉంటే (కాపీ ($ _ FILES [ 'Photo1'] [ "tmp_name"], "img /". తేదీ ( "M"). "/". తేదీ ( "D"). "/". $ ఐడి. $ ext) ) { ఎకో ( "ఫైల్ విజయవంతంగా అప్లోడ్"); } /// తదుపరి చర్య (డేటాబేస్ లో ఎంట్రీ, మరియు అందువలన న. N.) } బహుళ ఫైళ్లను (PHP) అప్లోడ్ రూపంలో అదనపు ఖాళీలను ద్వారా సంభవిస్తుంది. ఈ పద్ధతి అది డౌన్లోడ్ ఫైళ్ళ సంఖ్య పరిమితం గా, చాలా మంచి కాదు. అంతేకాక, అది ప్రోగ్రామింగ్ చెడు రూపం భావిస్తారు. డైనమిక్ ప్రతిదాన్ని చెయ్యడానికి ప్రయత్నించండి. ఆదర్శ ఎంపిక - ఇది ఒక సింగిల్ బటన్ నొక్కడం ద్వారా ఒకేసారి ఫైళ్లు పెద్ద సంఖ్యలో యొక్క ఎంపిక ఉంది. ఇది చేయటానికి, ఈ కోడ్ వంటి ఆకారం సృష్టించడానికి. <ఫారం పద్ధతి = "POST" చర్య = "హ్యాండ్లర్ ఫైలుకి లింకులు" పేరు = "upload_form" enctype = "మల్టిపార్ట్ / రూపం-డేటా"> <ఇన్పుట్ తరగతి = "form_upload" రకం = "ఫైల్" పేరు = "file1 []" బహుళ విలువ = "అవలోకనం"> <ఇన్పుట్ తరగతి = "form_upload" రకం = "submit" name = "upldFile" విలువ = "జోడించు" /> P> రూపం> పదం యొక్క బహుళ అదనంగా గమనించండి, మరియు పేరు వ్యూహం [] గా ఇవ్వబడుతుంది. ఈ సందర్భంలో, $ _FILES శ్రేణి కొద్దిగా భిన్నంగా ఉంటుంది. మీరు శ్రేణి యొక్క వ్యూహం పొందుతారు. పరీక్షించేందుకు మళ్ళీ var_dump ($ _ FILES) ఉపయోగించవచ్చు; అన్ని మీ ఫైళ్ళను ఈ విధంగా అమరిక చేరవచ్చు: కుండలీకరణాల్లో శ్రేణి లో ఫైల్ సంఖ్య రాస్తారు. సున్నా నుండి లెక్కింపు. మేము అదే విధంగా వాటిని చికిత్స కేవలం చక్రం అడగండి మరియు సూచిక జోడించడం [$ i] చివరిలో పైన వర్ణించిన కోడ్ సంప్రదించడం ద్వారా. $ నేను = 0; అయితే ($ _FILES [ "file1"] [ "పేరు"] [$ i] <> '') { /// పైన కోడ్ పేస్ట్ } అందువలన, మీరు ఫైళ్లను ఒక స్టాటిక్ సంఖ్య (చివరి ఫోటో) తో వెర్షన్ ఉపయోగిస్తే సాధారణంగా వలెనె, కోడ్ యొక్క అనవసరమైన పునరావృత్తి లేని ఒక వర్తులంలో సర్వర్కు ఒక PHP ఫైలు అప్లోడ్ ద్వారా జరిగే ఉంటుంది. బహుళ ఫైళ్లను
Similar articles
Trending Now