2011-11-17 19 views
7

मैं WS2003 के साथ एक सर्वर से एक वेबसाइट की ओर पलायन कर रहा हूँ, IIS6, पीएचपी 5.2 WS2008, IIS7 और पीएचपी के साथ एक सर्वर के लिए खत्म हो 5.3फ़ाइलें पहले अक्षर काट पाने

मैं एक एचटीएमएल रूप है कि है अपलोड किया जा रहा अपलोड साइट पर फाइलें।

<?php 
if(isset($_POST["Upload"])){ 
    echo "<pre>"; 
    print_r($_POST); 
    print_r($_FILES); 
    echo "</pre>"; 
} 
?> 

<form action="tester.php" method="post" enctype="multipart/form-data"> 
    <input type="hidden" name="Upload" value="1" /> 
    <input type="hidden" name="MAX_FILE_SIZE" value="4500000" /> 
    <input type="file" name="artImage" id="artImage" /> 
    <input type="submit" /> 
</form> 

पुराने सर्वर पर बेहतरीन कार्य करता है, लेकिन नए सर्वर पर, यह कोई कारण नहीं मैं देख सकता हूँ के लिए पहले अक्षर बंद कांट-छांट कर। मुझे नहीं पता कि यह आईआईएस सेटिंग है, या एक PHP सेटिंग है।
आउटपुट: पुराने सर्वर से

Array 
(
    [Upload] => 1 
    [MAX_FILE_SIZE] => 4500000 
) 
Array 
(
    [artImage] => Array 
     (
      [name] => easons_Change_(HD_Ready).jpg 
      [type] => image/pjpeg 
      [tmp_name] => C:\Windows\Temp\php99.tmp 
      [error] => 0 
      [size] => 498879 
     ) 

) 

आउटपुट, एक ही कोड, एक ही फाइल:

Array 
(
    [Upload] => 1 
    [MAX_FILE_SIZE] => 4500000 
) 
Array 
(
    [artImage] => Array 
     (
      [name] => Seasons_Change_(HD_Ready).jpg 
      [type] => image/pjpeg 
      [tmp_name] => C:\WINDOWS\Temp\php6835.tmp 
      [error] => 0 
      [size] => 498879 
     ) 

) 
+0

सिर्फ outputting कोशिश: 'गूंज $ _FILES [ 'artImage'] [ 'नाम']' – Neal

+2

@neal: कि सिर्फ उत्पादन था एक ही बात है कि print_r/var_dump होगा। –

+0

यह कैसे मदद करेगा? 'print_r' उस फ़ील्ड को ठीक दिखाता है। – jli

उत्तर

5

इस बग आप $_FILES 'name' missing first character after upload.

सामना कर रहे हैं मैं एक ही मुद्दा हो रहा है की तरह लग रहा है।

+0

ठीक है अगर यह 'magic_quotes' से सक्षम है। सही कार्य करता है! ;) – PeeHaa

+0

मेरे पास जादू उद्धरण सक्षम हैं। और यह पुराने सर्वर पर सक्षम है। पीहा, अगर मैं पूछूं, जादू उद्धरण के साथ क्या गलत है? मैं उत्सुक हूं, अगर ऐसा कुछ है जिसे मुझे बाहर निकालने की कोशिश करनी चाहिए। चूंकि मैंने इसे विरासत में लिया है, इस साइट पर यह इस तरह से किया गया है, और मैंने इससे छुटकारा पाने की कोशिश करने के लिए पर्याप्त देखभाल नहीं की। @cosmoba, php के बीटा संस्करण को स्थापित करने के लिए इसका समाधान क्या है? – AndyD273

+0

@ एंडीडी 273: जादू_कोट्स का उपयोग एसक्यूएल इंजेक्शन को रोकने के लिए किया जा सकता है हालांकि यह कई कारणों से खराब है (अच्छी तरह से मैं करता हूं, और मुझे यकीन है कि कई सहमत होंगे)। क्या होगा जब किसी प्रोजेक्ट के लिए magic_quotes पर निर्भर करता है और कुछ अन्य प्रोजेक्ट को जादू उद्धरण के साथ अक्षम करता है? magic_quotes यह वैरिएबल पर भी काम करता है न कि डेटाबेस लेनदेन (प्रदर्शन) के लिए भी इस्तेमाल किया जा रहा है।अगर किसी और प्रोजेक्ट के लिए सर्वर का उपयोग करता है तो यह उसके अपेक्षित var मानों को खराब कर देगा। इत्यादि। मूल रूप से यह उन लोगों के लिए 'सुरक्षा' (उद्धरण के भीतर) है जो सुरक्षित कोड को सही तरीके से लिखना नहीं जानते हैं। – PeeHaa

1

मुझे एक ही समस्या थी और बहुत कुछ खोज रहा था लेकिन यह एक बग है और मुझे नहीं पता क्यों! लेकिन मेरे पास समाधान है और यह भी काम करता है। फ़ाइल नाम से पहले एक नाम उपसर्ग करें। उदाहरण:

'fileNamePrefix_' . $_FILES['file_name_attribute']['name'] 
+0

सुनिश्चित करने के लिए 5.3.6 के लिए जाना चाहिए क्या आप अभी भी PHP 5.3 का उपयोग कर रहे हैं? मैं वास्तव में थोड़ी देर के लिए PHP 7 का आनंद ले रहा हूं, इसलिए यदि आपके पास अपग्रेड करने की क्षमता है तो आप इसे देखना चाहेंगे। इसमें कुछ साफ नई विशेषताएं हैं, और 5.3 से बहुत से सुरक्षा फ़िक्स ... – AndyD273

+0

हां मुझे पता है लेकिन मैं PHP 7 से परिचित नहीं हूं क्योंकि मैं थोड़ा व्यस्त हूं। आप के लिए धन्यवाद दर। –

संबंधित मुद्दे