Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

छवि PHP कैसे अपलोड करें और MySQL में पथ कैसे डालें?

अपनी टिप्पणी पर आप पूछते हैं कि डेटा को mysql पर कैसे अपलोड और स्टोर किया जाए। तो यह है:

फ़ाइल प्राप्त करने के लिए, आपके html में इस तरह की एक स्क्रिप्ट होनी चाहिए:

<html>
<body>

     <form action="upload_file.php" method="post" enctype="multipart/form-data">
        <label for="file">Filename:</label>
        <input type="file" name="file" id="file"><br>
        <input type="submit" name="submit" value="Submit">
     </form>

</body>
</html>

अब, POST पर, आपकी PHP फ़ाइल इस तरह दिखनी चाहिए, लेकिन कृपया ध्यान दें कि आपको यह जांचना होगा कि फ़ाइल आपके POST पर मौजूद है या नहीं:

if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br>";
  }
else
  {
  echo "Upload: " . $_FILES["file"]["name"] . "<br>";
  echo "Type: " . $_FILES["file"]["type"] . "<br>";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];

  }

चूंकि "संग्रहीत:" भाग केवल अस्थायी पथ है, आपको move_uploaded_file() मान लें कि आपकी छवियों के लिए वास्तविक/डिफ़ॉल्ट पथ इसमें है:

$image_dir= '/images/';

आपको बस इसका उपयोग करके फ़ाइल को स्थानांतरित करना है:

move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $image_dir. $_FILES['uploaded_file']['name']);

और छवि के लिए आपका पूरा पथ होगा

$image = $final_save_dir . $_FILES['uploaded_file']['name'];

आपके डेटाबेस में पथ को संग्रहीत करने के कई तरीके हैं:

पहला:केवल फ़ाइल नाम को संग्रहीत करना है और $_SERVER['DOCUMENT_ROOT'] का उपयोग करके PHP में छवि के पथ को संयोजित करें और आपका डिफ़ॉल्ट छवि पथ जैसे:

$sql="insert into employee_detail( emp_image, employee_name, employee_address,
    employee_contact, employee_designation, employee_salary) 
values( '$image', '$_POST[employee_name]', '$_POST[employee_address]', '$_POST[employee_contact]',
    '$_POST[employee_designation]','$_POST[employee_salary]')";

दूसरा:पूर्ण पथ को संग्रहीत करना है जैसे:

$sql="insert into employee_detail( emp_image, employee_name, employee_address,
    employee_contact, employee_designation, employee_salary) 
values( '".$_SERVER['DOCUMENT_ROOT']."\\images\\".$image."', '$_POST[employee_name]', '$_POST[employee_address]', '$_POST[employee_contact]',
    '$_POST[employee_designation]','$_POST[employee_salary]')";

मैं जो अनुशंसा करता हूं वह यह दृष्टिकोण है जिसमें आप आंशिक पथ . इनपुट करेंगे (रूट डीआईआर के बिना) ताकि बाद में आपको इसे तैनात करने में कोई समस्या न हो:

$sql="insert into employee_detail( emp_image, employee_name, employee_address,
    employee_contact, employee_designation, employee_salary) 
values( 'images\\".$image."', '$_POST[employee_name]', '$_POST[employee_address]', '$_POST[employee_contact]',
    '$_POST[employee_designation]','$_POST[employee_salary]')";

और सुनिश्चित करें कि छवियों को उस डिफ़ॉल्ट छवि dir/पथ पर सफलतापूर्वक अपलोड किया गया है ।

अपडेट करें

मेरा यह भी सुझाव है कि आप mysqli_* . का उपयोग करें या PDO और prepare() . का उपयोग करें विधि /कार्य एसक्यूएल इंजेक्शन को रोकने के लिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक MySQL तालिका में पंक्तियों को पुन:व्यवस्थित करें

  2. mysql_real_escape_string के बाद स्ट्रिप्सलाश का उपयोग करना

  3. MySQL कनेक्टर्स और लाइसेंसिंग

  4. यह जांचने का सबसे अच्छा तरीका है कि कोई पंक्ति MySQL तालिका में मौजूद है या नहीं

  5. MySQL में डेटाटाइम से घंटे कैसे घटाएं?