2013-10-12 16 views
14

मुझे पता है कि छवि फ़ाइल कैसे अपलोड करें और निम्न कोड का उपयोग करके अन्य स्थान पर सहेजें। हालांकि, मुझे ऐसा करने की ज़रूरत है कि उपयोगकर्ता अपलोड छवि और मेरे स्थान पर उस छवि को सहेजे बिना स्वचालित रूप से बेस 64 में परिवर्तित हो। मुझे कैसे करना चाहिए?php छवि फ़ाइल अपलोड करें और छवि को सहेजने के बिना बेस 64 में कनवर्ट करें

$data = file_get_contents($file_ext); 

यह होना चाहिए::

$data = file_get_contents($file_tmp); 

यह आपकी समस्या का समाधान करना चाहिए

<?php 
//print_r($_FILES); 
if(isset($_FILES['image'])) 
{ 
    $errors=array(); 
    $allowed_ext= array('jpg','jpeg','png','gif'); 
    $file_name =$_FILES['image']['name']; 
// $file_name =$_FILES['image']['tmp_name']; 
    $file_ext = strtolower(end(explode('.',$file_name))); 


    $file_size=$_FILES['image']['size']; 
    $file_tmp= $_FILES['image']['tmp_name']; 
    echo $file_tmp;echo "<br>"; 

    $type = pathinfo($file_tmp, PATHINFO_EXTENSION); 
    $data = file_get_contents($file_ext); 
    $base64 = 'data:image/' . $type . ';base64,' . base64_encode($data); 
    echo "Base64 is ".$base64; 



    if(in_array($file_ext,$allowed_ext) === false) 
    { 
     $errors[]='Extension not allowed'; 
    } 

    if($file_size > 2097152) 
    { 
     $errors[]= 'File size must be under 2mb'; 

    } 
    if(empty($errors)) 
    { 
     if(move_uploaded_file($file_tmp, 'images/'.$file_name)); 
     { 
     echo 'File uploaded'; 
     } 
    } 
    else 
    { 
     foreach($errors as $error) 
     { 
      echo $error , '<br/>'; 
     } 
    } 
    // print_r($errors); 

} 
?> 


<form action="" method="POST" enctype="multipart/form-data"> 

<p> 
    <input type="file" name="image" /> 
    <input type="submit" value="Upload"> 

</p> 
</form> 
+0

छवि को बेस 64 में परिवर्तित करने के बाद आप क्या करना चाहते हैं? –

+0

वास्तव में, प्रोजेक्ट के लिए, मैं छवि बेस को सहेजने के बजाय डेटाबेस में उस बेस 64 को सहेजना चाहता हूं। –

+4

अस्थायी अपलोड की गई सामग्री की सामग्री प्राप्त करने के लिए 'file_get_contents()' का उपयोग करें, फ़ाइल को सहेजने के लिए 'file64_encode() 'को एनकोड करने के लिए,' file_put_contents()'। यद्यपि एक छवि फ़ाइल का आधार 64 एन्कोडेड प्रतिनिधित्व संग्रहीत करना एक बुरा विचार जैसा लगता है - बड़ी फ़ाइलों के साथ, आप रैम समस्याओं में भाग ले सकते हैं, और परिणामस्वरूप फ़ाइल मूल से 33% अधिक होगी। ऐसा क्यों करते हैं? –

उत्तर

5

अपने कोड में एक गलती नहीं है।

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