संगणकफाइल प्रकार

कृपया PHP: सर्व्हरशी फाइल अपलोड

कृपया PHP द्वारे फाइल डाउनलोड - एक अतिशय मनोरंजक बाबतीत, जे अतिशय काळजीपूर्वक जवळ करणे आवश्यक आहे. इंटरनेट वर आपण फाइल अपलोड अंमलबजावणी अनेक उदाहरणे शोधू शकता, पण त्यांना सर्व नाही चांगले आहेत आणि सुरक्षा नियम पूर्ण.

अशा गोष्टी एक निष्कर्ष करण्यासाठी आणण्यासाठी तो बराच वेळ लागतो, जरी आवश्यक आहे. आपण कोड मध्ये अंतर सोडून, तर आपल्या संपूर्ण सर्व्हर तडजोड केली जाऊ शकते.

सुरक्षा

कृपया PHP सह फाइल अपलोड करा सर्व्हर सहज चालते आहे. कोड अतिशय साधी आणि सोपी आहे. ओळी फक्त दोन. तथापि, या पद्धतीचा धोकादायक आहे. जास्त वेळ आणि दूर सुरक्षा कोड ओळी.

धोका, आपण तपासणी नाही, तर, कोणत्याही आक्रमणकर्ता आपल्या सर्व्हरवर त्यांच्या स्क्रिप्ट अपलोड करू शकता आहे. या प्रकरणात, तो पूर्ण प्रवेश असेल. तो त्याने जे काही करू इच्छित आहे करू शकता:

  • डेटाबेस हटवा;
  • फाइल साइट हटवू;
  • फाइल साइट सुधारित;
  • आपली जाहिरात आपल्या वेबसाइटवर; सामील
  • व्हायरस डाउनलोड;
  • त्यांच्या साइट वर सर्व वापरकर्त्यांसाठी पुनर्निर्देशित;
  • आणि येतात की इतर अनेक गोष्टी हल्लेखोर मनात.

आपण नेहमी वापरकर्त्यासाठी एक फाइल डाउनलोड करण्यासाठी प्रयत्न तपासावे. उदाहरणार्थ, आपण फक्त प्रतिमा अपलोड तर, तो आवश्यक फाइल एखाद्या प्रतिमा अचूकपणे आहे याची तपासणी करण्यासाठी आहे. अन्यथा, आपण काहीही डाउनलोड करेल.

सत्यापन कसे अंमलबजावणी करण्यासाठी नक्की, तो फाइल अपलोड करण्यासाठी थेट परीक्षा स्क्रिप्ट, दर्शविले जाईल.

PHP म्हणजे फॉर्म तयार

फाइल अपलोड फॉर्म अगदी सोपे आहे. ब्राउझ करा आणि अपलोड बटणे गहाळ आहे.

हे सोपे आहे कारण कसे, फॉर्म नाही तयार करण्यासाठी वर्णन. पुढील सूचना आपण आधीच HTML प्राथमिक संकल्पना (अन्यथा आपण कृपया PHP डाउनलोड माहिती शोधत जाणार नाही) आहे असे गृहीत धरते.

पण आपण enctype विशेषता जोडू करणे आवश्यक आहे फॉर्म डेटा हे लक्षात ठेवा.

अन्यथा, फाइल हँडलर डेटा प्रसारित केला जाणार नाही.

ते कसे कार्य करावे?

आपण ब्राउझ बटण क्लिक करता तेव्हा आपण एक फाइल निवडा करण्यास सांगितले बॉक्स दिसेल.

त्यानंतर तो फाइल कुठे आहे एक मार्ग प्राप्त करणे आवश्यक आहे.

मार्ग दिसत नाही, तर क्रिया पुन्हा.

डाउनलोड फाइल हँडलर वर क्लिक केल्यानंतर कोणतीही माहिती देऊ शकता.

उदाहरणार्थ, आपण फाइल "म्हणून आणि त्यामुळे" नाव यशस्वीरित्या "अशा आणि अशा" फोल्डरवर अपलोड केली गेली आहे की असे सूचविते ओळ लिहू शकता. अर्थात, फाइल नाव नेहमी विविध दिले जाईल.

थोडक्यात, ही माहिती डीबग कोड वापरले जाते. त्यामुळे तो डेटा प्रसारित केला जातो आणि writes इच्छित डिरेक्टरी मध्ये येऊ असल्याचे सत्यापित करणे शक्य आहे. आहे, अगदी फाइल नाव दर्शविला जात नाही. वापरकर्ता गरज या अतिरिक्त माहिती असल्याने असे होत नाही.

हे वापरकर्ता एकाधिक फाइल्स डाउनलोड तरच नाव आउटपुट अर्थ प्राप्त होतो. अशा बाबतीत आहे, थोडे अंतर पुढे विचार करा. च्या पुढे स्वतः करु नये.

समायोजन

सर्व्हर PHP फाइल अपलोड मध्ये php.ini फाइल केले पाहिजे, जे काही सेटिंग्ज, आवश्यक आहे. ही फाइल सेटिंग्ज भरपूर आहे. ते सर्व आम्ही गरज नाही. file_uploads, upload_tmp_dir आणि upload_max_filesize: आम्ही तीन ओळी रूची आहे.

कृपया लक्षात ठेवा या सेटिंग्ज केवळ घेऊ नये सर्व्हर वर आपली साइट सर्व परिणाम होईल की. म्हणून, आपण वापरकर्ते लोड लागेल वस्तुस्थितीवर आधारित कमाल आकार सेट करण्यासाठी. ती खूप मोठी सेट करण्यासाठी शिफारस केलेली नाही.

आपण या घटकांमध्ये मूल्ये बदलू एकदा, आपण सर्व्हर रीस्टार्ट करणे आवश्यक आहे. अन्यथा सेटिंग्ज ते सर्व्हर लोड वेळी वाचन म्हणून प्रभावी होत नाहीत.

आपण सर्व्हरशी SSH द्वारे कनेक्ट करून कन्सोल हे करू शकता. फक्त आदेश सेवा httpd रीस्टार्ट प्रविष्ट करा, आणि नंतर सेटिंग्ज प्रभावी होतील.

दुसरी पद्धत - ISP-पॅनेलद्वारे किंवा बिलिंग पॅनल प्रदाता माध्यमातून एक रीस्टार्ट करा.

अरे फाइल

PHP मध्ये फाइल अपलोड अरे $ _FILES केले जाते. आम्ही डाउनलोड केलेल्या फायली सर्व माहिती आहे.

अरे, खालिल फाइल हँडलर लिहिण्यासाठी पुरेसे कोणती माहिती समाविष्ट आहे पहा.

कोणत्याही फाइल निवडा आणि क्लिक करा "अपलोड करा." हँडलर पृष्ठावर $ _FILES मध्ये साठवली जाते ती माहिती प्रदर्शित होईल. चल राजधानी अक्षरे संपूर्णपणे लिहिले आहे. कृपया PHP - एक भाषा-संवेदनशील.

तुम्ही बघू शकता, या रचनेच्या शेतात भरपूर आहे. त्यांना सर्व आम्हाला महत्वाचे आहेत. प्रथम फील्ड ते आपल्या संगणकावर वापरली जाते फॉर्म मध्ये फाइल नाव आहे.

प्रकार स्तंभ फाइल प्रकार निर्दिष्ट. Tmp_name क्षेत्रात तात्पुरती फाइल नाव जुळते. स्क्रिप्ट शेवटी हटविला जाईल.

त्रुटी क्षेत्रात एक त्रुटी कोड आहे. हे पुढील थोडे होते. आकार - बाइट्समधील आकार.

त्रुटी

कृपया PHP फाइल अपलोड माध्यमातून चालते नेहमी एक त्रुटी कोड दाखल्याची पूर्तता आहे. "त्रुटी" मध्ये प्रवेश केला त्रुटी संदेश. स्क्रीनशॉट त्रुटी शून्य आहे.

सर्व चुका मूल्य लक्षात घ्या:

ही नेहमीची HTML मध्ये निर्देशीत करणे शक्य आहे घटक बद्दल वरील सांगितले होते.

येथे फाइल अपलोड फाइल रक्कम एक मर्यादा सूचित डाउनलोड करण्यासाठी नमुना प्रकार आहे.

कृपया PHP: फाइल अपलोड स्क्रिप्ट

सर्व सराव चालते म्हणून? PHP मध्ये फाइल अपलोड प्रत आदेश येते. स्त्रोत फाइल व लक्ष्य फाइल - आपण एक फाइल डाउनलोड कसे प्रश्न स्वारस्य असल्यास, उत्तर सोपे copy-, जे दोन मापदंड वापरते आहे.

पण, वर नमूद केलेल्या, तो सुरक्षा कारणांमुळे मर्यादित असू शकत नाही. उदाहरणार्थ, आम्ही जहाज, आपण अरे $ _FILES मध्ये फील्ड प्रकार वापरू शकता फाइल कोणत्या प्रकारच्या तपासा. प्रथम, तपासणी सामोरे, आणि नंतर संपूर्ण स्क्रिप्ट वर सरकवून

आपण वापरकर्ते फक्त GIF, JPEG किंवा PNG एक ठराव फोटो अपलोड करण्याची परवानगी देऊ इच्छित असे म्हणू नये. ते असे असू शकते सूचित करा.

तर ($ _ फाईल [ 'file_upload'] [ 'प्रकार']! = "image / gif") {
echo "क्षमस्व, आम्ही केवळ gif-फायली डाउनलोड करण्यास समर्थन देत";
बाहेर पडा;
}

आपण जहाज सर्व 3 प्रकार इच्छित असल्यास, फक्त प्रतिमा इतर प्रकार अतिरिक्त अट जोडा.

प्रत (1 प्रतिमा, प्रतिमा 2): कॉपी सारखे हे केले जाते.

आमच्या बाबतीत, काम सर्व्हर पीसी डाउनलोड असेल, तर तुम्ही करू शकता

प्रत ($ _ फाईल [ 'file_upload'] [ "tmp_name"], "1.jpg")

ती फाईल नाव 1.jpg सह कॉपी केली जाईल, आहे. हे पूर्णपणे योग्य नाही. या प्रकरणात, तो केवळ एक उदाहरण आहे. फाइल नाव, विविध निर्दिष्ट करण्यासाठी, आणि विस्तार निर्दिष्ट फाइल अवलंबून नेहमीच आवश्यक आहे.

ठरवा विस्तार विविध मार्ग असू शकते. हे सर्व विद्वत्ता विकसक अवलंबून असते. (सेकंद दशांश एक फरक) विस्तार निर्धारित जलद मार्ग म्हणजे - या पुढील कोड आहे.

$ Path_info = pathinfo ($ _ फाईल [ 'photo1'] [ "नाव"]);

$ विस्तार क्रमांक = $ path_info [ 'विस्तार'];

चल $ EXT आम्ही इच्छित विस्तार संग्रहित करेल. फाइल नाव MD5 वापरून यादृच्छिक सेट केले जाऊ शकते. आपण फायली भरपूर डाउनलोड करायचे असल्यास, तो विविध फोल्डर त्यांना मोटार चांगले आहे. त्यामुळे अधिक सोयीस्कर होईल. विशेषतः, आपण स्वच्छ करू इच्छित असल्यास.

कोड खालील प्रमाणे डाउनलोड करण्यासाठी.

/// फोटो सह

तर ($ _FILES [ 'photo1'] [ 'tmp_name'] == null)

{

इको ( "

अज्ञात फाइल.

मागे ... ");

बाहेर पडा;

}

///. सर्व्हर कोणत्याही प्रकल्पासाठी तुम्ही म्हणता मोठ्या फाइल्स् (व्हिडिओ) लोड करण्याची परवानगी आहे, पण फक्त चित्रे आहेत, आणि वापरकर्ते मर्यादित करणे आवश्यक आहे

तर (($ _FILES [ "photo1"] [ "आकार"]> 1024 * 1024 * 2)

{

?>

कमाल अनुमत आकार 2 MB

मागे ...

बाहेर पडा;

}

फोल्डर तयार //

// चालू महिन्याच्या एक फोल्डर तयार

जर (! file_exists ( "img /". तारीख ( "एम")))

{

mkdir ( "img /" तारीख ( "एम").);

}

// वर्तमान दिवस एक फोल्डर तयार

जर (! file_exists ( "img /". तारीख ( "एम"). "/". तारीख ( "ड")))

{

mkdir ( "img /" तारीख ( "एम") "/" तारीख ( "ड") ...);

}

/// फाइल विस्तार

$ Path_info = pathinfo ($ _ फाईल [ 'photo1'] [ "नाव"]);

$ विस्तार क्रमांक = $ path_info [ 'विस्तार'];

फाइलनाव निर्माण ///

$ Id = MD5 (तारीख ( "YMd"));

तर (प्रत ($ _ फाईल [ 'photo1'] [ "tmp_name"], "img /". तारीख ( "एम"). "/". तारीख ( "ड"). "/". $ आयडी. $ EXT) )

{

इको ( "यशस्वीरित्या अपलोड फाइल ')

}

/// कोणतीही पुढील कारवाई (डेटाबेस मध्ये नोंद, आणि त्यामुळे वर. एन)

}

एकाधिक फाइल्स

एकाधिक फाइल्स (PHP) अपलोड स्वरूपात अतिरिक्त फील्ड अर्थ येते.

ते डाउनलोड करण्यासाठी फायलींची संख्या मर्यादित म्हणून ही पद्धत फार चांगला आहे. शिवाय, ते प्रोग्रामिंग मध्ये खराब फॉर्म मानली जाते. डायनॅमिक सर्वकाही करण्याचा प्रयत्न करा.

आदर्श पर्याय - तो एकच बटण दाबून एकाच वेळी फाइल्स मोठ्या प्रमाणात एक पर्याय आहे.

हे करण्यासाठी, हा कोड सारख्या आकार तयार करा.

<फॉर्म पद्धत = "पोस्ट" क्रिया = "दुवा हँडलर फाइल 'नाव =" upload_form "enctype =" मल्टीपार्ट / फॉर्म डेटा ">

<इनपुट 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] <> '')

{

/// वरील कोड पेस्ट करा

}

त्यामुळे, आपण फाइल्स एक स्थिर संख्या (गेल्या फोटो) आवृत्ती वापरत असल्यास सहसा बाबतीत आहे म्हणून आपण कोड अनावश्यक पुनरावृत्ती न करता एक सायकल मध्ये सर्व्हरसह एक कृपया PHP फाइल अपलोड माध्यमातून घडू लागेल.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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