X
تبلیغات
رایتل

به وبلاگ برنامه نویسی خوش آمدید.

برنامه نویس وب و نرم افزار تحت دسکتاپ

ایمیل rss feeds friendfa
  • آموزش برنامه نویسی وب
  • آموزش html و css
  • آموزش php و mysql
  • jquery
  • java
دکمه ی بعدی اسلاید شو دکمه ی قبلی اسلاید شو


فرم ارسال متن و عکس به دیتابیس

امروز آموزش ساخت فرم ارسال اطلاعاتی چون متن و عکس را در اینجا قرار دادم . ارسال عکس به دیتابیس یا همان بانک اطلاعاتی ، از لحاظ امنیتی کار درستی است ولی این کار باعث می شود که حجم زیادی اشغال شود و سرعت را پایین آورد. شما می توانید متن رو به دیتابیس ارسال کنید و عکس را هم به پوشه و آدرس عکس را به دیتابیس بفرستید که انشاالله این موضوع را من در پست های بعدی قرار خواهم داد. این فرم یه فرم ساده است که میشد قسمت رادیو و چکمارک و قسمت توضیحات و قسمت ویرایش و پاک کردن را هم به آن اضافه کرد ولی من خواستم یه فرم ساده ای باشه تا بهتر یاد بگیرید. قبل از هر چیزی می خوام از آقای  سید علی ساعدی به دلیل راهنمایی ایشان در ساخت قسمت خواندن اطلاعاتی چون متن و عکس این فرم از ایشان تشکر نماییم. کمتر کسی پیدا میشه که به این خوبی بیاد و این مطالب رو به آدم آموزش بده . البته من قصدم یادگیری این مطلب و گذاشتن در وبلاگ برای یادگیری عموم بود. هر کسی خواست این مطلب رو در سایتش بذاره نام آقای سید علی ساعدی را هم قید بفرماید. و همچین آدرس انجمن php به آدرس :‌ www.phpgroup.ir  

اول باید اگه این کار ها را در لوکال هاست انجام میدید با استفاده از برنامه ی XAMPP  به آدرس http://localhost/phpmyadmin/ بروید و و نام دیتابیس را upload بگذارید و utf8_persian_ci را هم انتخاب نمایید و پس از انتخاب دیتابیس بر روی گزینه ی SQl در بالا کلیک کنید و کدهای جدول را در آن وارد کنید و دکمه ی تایید را کلیک کنید: 

CREATE TABLE `upload`.`images` (
`imageID` INT( 10 ) NOT NULL AUTO_INCREMENT ,
`imageData` LONGBLOB NOT NULL ,
`text` text not null,
PRIMARY KEY ( `imageID` )

 

توضیحات : در خط اول ما یک جدول با نام  images ایجاد کردیم در خط دوم ما imageID را برای شماره ی عکس که بعدا ID نام می گیرد ایجاد کردیم . در خط سوم imageData برای ثبت و آپلود عکس ایجاد کردیم  که باید مقدار LONGBLOB  هم داشته باشد. خط چهارم هم مقدار text برای متن را ایجاد کردیم  و imageID هم قسمت اصلی جدول. 

 

 حالا می رسیم به قسمت ارسال متن و عکس  

کدهای زیر را با نام upload.php در پوشه ی  htdocs یا ریشه ی سرور وبتان ذخیره کنید: 

 

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>آپلود عکس به دیتابیس</title>

<body>

 <?php

 if(isset($_POST['text'])){

  $text = $_POST['text'];

 }

 // اگر دکمه ی ارسال کلیک شود

if(isset($_POST['Submit']))

{

// اتصال به مای اس کیو ال سرور

$link = mysql_connect('localhost', 'root', ''); 

if (!$link) {

    die('Not connected : ' . mysql_error());

}

// اتصال به دیتابیس

$db_selected = mysql_select_db('upload', $link);

if (!$db_selected) {

    die ('Database error : ' . mysql_error());

    // انتخاب دیتابیس

}


  //این کد برای ثبت متن در قسمت تکست است

$maxFileSize = "1000000";

 // اندازه ی فایل یک مگابایت

$image_array  = array("image/jpeg","image/jpg","image/gif","image/bmp","image/pjpeg","image/png");

 //  نوع عکسی که می توانید وارد کنید


$fileType = $_FILES['userfile']['type'];

 

$msg = '';



if (in_array($fileType, $image_array)) 

{

// چک می کند که آیا فایل آپلود شد؟

 if(is_uploaded_file($_FILES['userfile']['tmp_name'])) 

 {

 

 // چک می کند که آیا اندازه ی فایل زیر یک مگا بایت است؟

        if($_FILES['userfile']['size'] < $maxFileSize)

            {

 


                  $imageData =addslashes (file_get_contents($_FILES['userfile']['tmp_name']));

 

 // وارد کردن اطلاعاتی چون متن و تصویر

        $sql = "INSERT INTO images (text,imageData) VALUES ('$text','$imageData')";

 

              

        mysql_query($sql) or die(mysql_error());

                $msg = " Data successfully uploaded";

         }

     else 

         {

     

             $msg = ' Error :  File size exceeds the maximum limit ';

                 

             }

   }

}

else

{

$msg = 'Error: Not a valid image ';

}

 echo "<span style='color:#FF0000'>$msg</span><br />";

}

?>

        <h3>Select File to upload</h3>

 

        <form enctype="multipart/form-data" action="upload.php" method="post">

             <input name="userfile" type="file" /> <br>

             name:  <input type="text" name="text" size="20">

            <input type="submit" value="Submit"  name="Submit"/>

        </form>

    </body>

</html>

 

توضیح بخش html : قسمت span که مربوط به پیغام ذخیره شده در متغیر $msg که آپلود شدن تصویر را نشان می دهد. البته من برای ارسال متن پیغامی قرار ندادم شما می تونید قرار بدید.

در بخش form خط اول و دوم مربوط به فایل عکس است .  

name="userfile" این قسمت را هم حتما برای ثبت رکورد باید نامگذاری کنید تا جدول بشناسد. 

خط بعدی هم مربوط به متن است . 

name="text" را هم باید نامگذاری کنید که متن در جدول ثبت شود . اینجا که نامش را text گذاشتید بعد در فایل akhar.php هم نامش را در قسمت $record["text"] را هم text گذاشتیم . قسمت فایل هم به همین صورت . تا بتوانند با هم ارتباط داشته باشند. 

 

حالا نوبت رسید به فایل show.php 

این قسمت مربوط به عکس می باشد.  

 

<?php

if(isset($_GET['id'])){

$id= $_GET['id'];

$servername="localhost";

$dbname="upload";

$user="root";

$pass="";

$dblink=mysql_connect($servername,$user,$pass);

mysql_select_db($dbname,$dblink);

// انتخاب دیتابیس

$dbresult=mysql_query("SELECT * FROM  images where imageID=$id",$dblink);

// انتخاب آی دی یا شماره ی عکس از جدول

mysql_query("SET CHARACTER SET  utf8",$dblink);

// سازگاری با زبان فارسی

while($record=mysql_fetch_assoc($dbresult))

{

print ($record["imageData"]."<hr>");

// چاپ عکس

}

mysql_close($dblink);

}

?> 

 

حالا نوبت به چاپ عکس و متن یا خواندن عکس و متن از دیتابیس یا بانک اطلاعاتی رسید من برای ساخت این قسمت خیلی دردسر کشیدم و یه جورایی کار مشکلی بود . این کد ها را با نام akhar.php را در همان پوشه ی htdocs یا در ریشه ی سرور وبتان ذخیره کنید: 

<?php

$servername="localhost";

$dbname="upload";

$user="root";

$pass="";

$dblink=mysql_connect($servername,$user,$pass);

mysql_select_db($dbname,$dblink);

$dbresult=mysql_query("SELECT * FROM  images",$dblink);

mysql_query("SET CHARACTER SET  utf8",$dblink);

while($record=mysql_fetch_assoc($dbresult))

{

echo ($record["text"]."<br>"."<img width='50' src=show.php?id=".$record['imageID'].">"."<hr>" );

}

mysql_close($dblink);

?> 

 

توضیحات : در قسمت echo ما text یا همان متن را چاپ می کنیم . 

و برای ثبت عکس همین متن باید از <img src=show.php?id=".$record['imageID']."> استفاده کنیم . که در قسمت  id=".$record['imageID']  خود عکس متن مشخص می شود . و اگر نباشد تصاویر تکراری و برای همه ی متن ها یکی خواهد بود. و هر عکسی کنار متن خاص خودش نخواهد بود. 

حالا به آدرس مثلا : http://localhost/akhar/upload.php بروید و متن را نوشته و عکس خود را وارد کنید .  پس از آن به آدرس : http://localhost/akhar/akhar.php بروید و تصاویر را به همراه متن خودشان می بینید.

خواندن عکس و متن از دیتابیس  

شاد و موفق پیروز باشید.

کاربر وبلاگ نوشته شده توسط راوندی در تاریخ پنج‌شنبه 4 شهریور‌ماه سال 1389 ساعت 10:21 ق.ظ  چاپ 

نظرات (14)


جمعه 2 مهر‌ماه سال 1389 ساعت 03:47 ب.ظ
سلام آقا چرا آموزش تصویری نمی زارید! من هیچی نفهمیدم خواهش میکنم توضیحات بیشتری بدید من آیا با نرم افزار دیگری نمی شه این کار رو انجام داد
امتیاز: 10 مثبت 0 منفی
پاسخ:
داداش همینم توی هیچ سایتی توضیح نداده بودن که من برات توضیح دادم

جمعه 27 خرداد‌ماه سال 1390 ساعت 02:56 ق.ظ
با سلام و خسته نباشید
اگه ممکنه کد کامل ارسال و دریافت عکس به یک پوشه در هاست و ذخیره ادرس عکس در دیتابیس رو برام ایمیل کنید ممنون میشم
عکسهای که میخوام اپلود کنم حجمهاشون زیاد تا حدودی نمیشه تو دیتابیس ذخیره کرد
امتیاز: 1 مثبت 2 منفی
پاسخ:
اینم آموزشی که می خواستی
ravand: http://barnamenevis.org/forum/showthread.php?p=1150530#post1150530

دوشنبه 7 شهریور‌ماه سال 1390 ساعت 10:48 ق.ظ
عالی بود
امتیاز: 3 مثبت 0 منفی

سه‌شنبه 17 آبان‌ماه سال 1390 ساعت 01:49 ب.ظ
واقعا دمت گرم.درود به شرفت.میدونی چقدر کمکم کردی پسر؟؟؟از صمیم قلب ممنونم
امتیاز: 4 مثبت 0 منفی

سه‌شنبه 13 دی‌ماه سال 1390 ساعت 01:43 ب.ظ
سلام....دستت درد نکنه استفاده کردم.....
امتیاز: 1 مثبت 0 منفی

دوشنبه 23 مرداد‌ماه سال 1391 ساعت 07:34 ب.ظ
سلام من به صفحه ای که به سایت نرنامه نویس ارجاع دادید رو دیدم و کدها را وارد کردم و خطاهای زیر را داد میشه کمک کنید ؟
خطای 1
Warning: move_uploaded_file(uploads/b12.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in E:\wamp\www\meshkat2\uplaod.php on line 34

خطای 2
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'E:\wamp\tmp\php217.tmp' to 'uploads/b12.jpg' in E:\wamp\www\meshkat2\uplaod.php on line 34
امتیاز: 0 مثبت 0 منفی
پاسخ:
آیا شما پوشه ی uploads رو ساختید؟
اگه این مشکل شما نیست با آی دی من تماس بگیرید و فایل مورد نظرتون رو برام ارسال کنید تا مشکلتون رو بررسی کنم
موفق باشید.

سه‌شنبه 24 مرداد‌ماه سال 1391 ساعت 10:26 ب.ظ
سلام
پوشه uploads رو توی دیتا بیس ساختم با فیلد های i d و url و text و 2 تا هم صفحه درست کردم یکی برای فرم و دومی upload.php که action همین صفحه دوم هست نمی دونم چیز دیگری هم هست . البته من mail server ندارم نمی دونم ربطی داره یا نه .
خیلی ممنون میشم کمکم کنید .
امتیاز: 0 مثبت 0 منفی
پاسخ:
ببخشید من اصلا متوجه نشدم شما دارید سوالتون رو در مورد ارسال عکس به دیتابیس می پرسید. و به اشتباه گفتم باید پوشه ی upload بسازید در صورتی که نیاز به این کار نیست.
چون قراره عکس وارد دیتابیس بشه نه پوشه.
درسته نیازی به میل سرور نیست چون قرار نیست ایمیل ارسال کنیم.
شما یا باید برنامه ی wamp داشته باشی یا xampp .
الان شما گفتید "پوشه uploads رو توی دیتا بیس ساختم با فیلد های i d و url و text" آیا این تغییرات رو توی کدها هم اعمال کردید؟
مثلا شما به جای imageID در خط زیر از id استفاده کردید:
`imageID` INT( 10 ) NOT NULL AUTO_INCREMENT ,
تغییر رو در کدهاتون هم اعمال کردید؟

چهارشنبه 25 مرداد‌ماه سال 1391 ساعت 12:28 ب.ظ
سلام
نه من می خوام عکس در جایی دیگه باشه و ادرسش در دیتابیس ذخیره بشه که حجم دیتابیس کم باشه ولی نمی دونم عکس دقیقا کجا قرار می گیره و ادرسش چطوری به دیتابیس فرستاده میشه .
در مورد میل سرور هم چون دلشتم صفحه ارتباط با ما را می ساختم برای اولین بار و توش گیر کرده بودم یهو قاطی کردم ببخشید .
من با ومپ کار می کنم . پوشه uplode کجا باید ساخته بشه توی پوشه www ؟ این کدی که شما توی صفحه سوم از اعتبار سنجی عکس توی سایت برنامه نویس زده بودید مگه ذخیره ادرس در دیتابیس نبود ؟
ممنون از اینکه میخونید و پاسخ میدید خدا خیرتون بده .
امتیاز: 0 مثبت 0 منفی
پاسخ:
اگه میخواهید عکس رو در دیتابیس ذخیره کنید نیازی به ساختن پوشه ی upload نیست. اگه شما عکس رو در پوشه ذخیره بکنید بهتر از ذخیره در دیتابیس هست هم سرعت بیشتر میشه و هم حجم کمتری از دیتابیس اشغال میشه.
من نمیدونم منظورتون از صفحه ی سوم چه صفحه ای هست من توی سایت برنامه نویس فعالت زیادی داشتم و نمیدونم چه صفحه ای منظور شماست. بهتر بود ادرس میدادید.
چرا از طریق آی دی من تماس نمیگیرید اینطوری بیشتر وقتتون تلف میشه تا من جواب سوالتون رو بدم. از طریق آی دیم پیام بدید سریع تر به جوابتون برسید.
موفق باشید.

شنبه 14 اردیبهشت‌ماه سال 1392 ساعت 10:43 ق.ظ
احسن برشما هموطن بزرگوار انشاءالله در پناه خدا و زیر سایه اما عصر(عج) موفق و سربلند باشید.
باتشکر از شما
نیمرخ سافت
امتیاز: 0 مثبت 0 منفی

دوشنبه 18 آذر‌ماه سال 1392 ساعت 06:23 ب.ظ
سلام خسته نباشید
یکی از آرزوهای کاریم اینه که فرد قدرتمندی تو طراحی وب بشم خودم با خوندن کتاب و ... یاد می گیرم . مطلب شما خیلی به من کمک کرد آرزوی سلامتی و موفقیت براتون دارم .
مرسی ...........
امتیاز: 0 مثبت 0 منفی

دوشنبه 11 اسفند‌ماه سال 1393 ساعت 11:39 ب.ظ
واقعا دستتون درد نکنه. من 10 روز دنبال این برنامه بودم و هر کاری می کردم جواب نگرفته بودم. خدا خیرتون بده. امیدوارم همیشه موفق وش اد باشید
امتیاز: 0 مثبت 0 منفی

چهارشنبه 27 خرداد‌ماه سال 1394 ساعت 01:36 ق.ظ
سلام
فوقالعاده بود فقط چند تا سوال داشتم...
میشه ای دی تونو بدید؟

این تیکه رو کلا نفهمیدم چی شد؟
<img src=show.php?id=".$record['imageID'].">"
امتیاز: 0 مثبت 0 منفی
پاسخ:
خیلی واضح توضیح دادم چطور متوجه نشدید؟

چهارشنبه 27 خرداد‌ماه سال 1394 ساعت 02:02 ب.ظ
show یه متده درسته؟
کارش چیه؟
امتیاز: 0 مثبت 0 منفی
پاسخ:
این show.php فایل هست که مقداری که داخل $record['imageID'] هست براش ارسال میشه. و توسط id گرفته میشه اونم به روش GET .

دوشنبه 22 آذر‌ماه سال 1395 ساعت 11:25 ق.ظ
آقا دستت درد نکنه عالللی
من اصلا کامنت نمیذارم ولی کارمو راه انداختی گفتم حتما تشکر کنم
امتیاز: 0 مثبت 0 منفی


برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
نام:
ایمیل(پنهان می ماند):
وب/وبلاگ:
متن نظر:
لبخند


 درباره من
عکس پروفایل

سلام ، من محمدرضا هستم ، و اهل راوند کاشان. برنامه نویس وبسایت هستم . اگر میخواهید سایتی طراحی کنید با من تماس بگیرید ، می تونید توی وبلاگ بهم پیام بدید . متشکرم.
  بایگانی

دسته‌ها

 جدیدترین یادداشت‌ها
مشکل نمایش border با کلیک روی texbox یا کلیک روی لینک
رفع خطای ()Fatal error: Cannot redeclare jdate
گرفتن پشتیبان از بانک اطلاعاتی با کمک mysqldump
چگونه برنامه نویس شویم؟
افزونه ای برای عکس گرفتن از سایت
مشکل ویرایشگر ckeditor با ایجکس
قالب وبلاگ برنامه نویسی
اجرا نشدن فایل جاوا در cmd
اخطار عدم پشتیبانی از FULLTEXT در قسمت phpmyadmin
رنگی کردن کد در برنامه ی word و صفحات وب با کمک notepad++
طریقه ی ثبت دامین ir
کتاب آموزش آسان و کاربردی php و mysql
لینک گذاشتن روی بخشی از تصویر
چند مطلب اضافه شده به کتاب آموزش سریع و آسان jquery
کتاب آموزش سریع و آسان jquery
اخطار no privileges در برنامه ی wamp 2.4 در قسمت ایجاد دیتابیس
گرادینت gradient برای همه ی مرورگرها
کنفرانس برنامه نویسان php
مشکل قالب های میهن بلاگ
کتاب آموزش ++C
کتاب آموزش tkinter به زبان ساده
مترجم قالب
گرد کردن div در مرورگر اکسپلورر
ضبط صدا با کمک جاوا اسکریپت ، جی کوئری ، php و فلش
لینک های آموزش برنامه نویسی
حفره ی امنیتی در مرورگر اکسپلورر
نمایش عکس از روی سایت در برنامه ی جاوا
نمایش لینک به صورت تصادفی
برنامه ی شکلک های الفورآی
گذاشتن پسورد روی پوشه در سایت
لیست کامل عناوین یادداشت‌ها
 موارد دیگر

آمار تعداد کل بازدید ها : 435944
rss feeds

Powered By

www.barnamenevisi.blogsky.com

Copyright © 2014 barnamenevisi.blogsky.com