مشکل در ذخیری آدرس عکس در بانک

msafvati

New Member
با سلام خدمت دوستان و تبریک سال نو
من ميخوام مسير عکس رو با توجه به کد زير در ديتابيس قرار بدم اما هميشه يک سطر خالي در ديتابيس رد ميشه و چيزي مبني بر مشخصات عکس مثل سايز،نام و ... نيست.
از دوستان ميخوام راهنماييم کنند يا اگه راه بهتري براي قرار دادن مسير عکس در پايگاه داده ميشناسند به بنده کمک کنند.
با تشکر

کد:
<?php
 if (isset ($_GET['upload'] ))
 {
 $name = $_FILES['picture']['name'];
 $tmp_name= $_FILES['picture']['tmp_name'];
 $type = $_FILES['picture']['type'];
 $size= $_FILES['picture']['size'];
 
 list($width,$height,$typeb,$attr)= getimagesize($tmp_name);
 if ($width>600 || $height>500)
 {
  echo $name."dimensions exceed the 600*500 Pixel Limited.";
  die();
 }
# if (!(
# $type=='image/jpeg' ||
# $type=='image/png' ||
# $type=='image/gif'
# ))
# {
# echo $type."is not an acceptable Format.";
# }
 
 if ($size>'350000') {
 echo $name."is over 350KB. please make it smaller";
 die();
     }
     }
     
     if (! get_magic_quotes_gpc()){
     $name= addslashes($name);
     
     $extract = fopen($tmp_name,'r');
     $content = fread ($extract,$size);
     $content = addslashes($content);
     fclose ($extract);
     }
      
      $con=odbc_connect("Test","","");
     $addfile = " insert into tblTest (name,size,type,content) ". " values ('$name','$size','$type','$content')";
      $result = odbc_do ($con,$addfile);
      odbc_close($con);
      
?>
 

irdavidnet

Banned
نه این برنامت زیاد خوب نیست .
باید از این کد استفاده کنی :
هم ساده ، هم راحتتر .
البته توی این برنامه من ، این چیزها توی بانک ذخیره میشه که خودت می تونی اصلاح کنی :
1- نام عکس
2- آدرس آپلود شده
3- تایپ
4- سایز
»»»
PHP:
$readdir = "../../uploads";
$allow = "jpg,jpeg,gif,bmp,pdf,png,txt,doc,rtf,zip,tar.gz,tiff,css,mpeg,mp3,midi,js,txt";

if (isset($_POST['SUBMIT'])) {
////// check for allow file
if ($_FILES['file']['type']=="image/jpeg" OR $_FILES['file']['type']=="image/jpg" OR $_FILES['file']['type']=="image/jpe" OR $_FILES['file']['type']=="image/pjpeg" OR $_FILES['file']['type']=="image/pjpg" OR $_FILES['file']['type']=="image/x-jpeg" OR $_FILES['file']['type']=="image/x-jpg" OR
$_FILES['file']['type']=="image/gif" OR $_FILES['file']['type']=="image/x-gif" OR $_FILES['file']['type']=="image/png" OR $_FILES['file']['type']=="image/x-png" OR $_FILES['file']['type']=="image/tif" OR $_FILES['file']['type']=="image/tiff" Or $_FILES['file']['type']=="image/bmp" Or $_FILES['file']['type']=="image/x-bmp"
Or $_FILES['file']['type']=="text/css" OR  $_FILES['file']['type']=="video/mpeg" Or $_FILES['file']['type']=="video/x-mpeg" OR $_FILES['file']['type']=="audio/mpeg" Or $_FILES['file']['type']=="audio/x-mpeg" OR $_FILES['file']['type']=="audio/midi" OR $_FILES['file']['type']=="audio/mid" OR $_FILES['file']['type']=="text/plain" OR $_FILES['file']['type']=="application/zip" OR $_FILES['file']['type']=="application/x-zip" OR $_FILES['file']['type']=="application/x-zip-compressed" OR $_FILES['file']['type']=="application/pdf" OR $_FILES['file']['type']=="application/msword" OR $_FILES['file']['type']=="application/x-javascript" OR $_FILES['file']['type']=="application/x-tar"){
  
if (eregi(".php",$_FILES['file']['name']) OR eregi(".php3",$_FILES['file']['name']) OR eregi(".php4",$_FILES['file']['name']) OR eregi(".asp",$_FILES['file']['name'])
OR eregi(".html",$_FILES['file']['name']) OR eregi(".htm",$_FILES['file']['name']) OR eregi(".php5",$_FILES['file']['name']) OR eregi(".aspx",$_FILES['file']['name'])
){
echo "فرمت فايل غير قابل قبول است";
}else {
if (file_exists($readdir.'/'.$_FILES['file']['name'])){
echo "فايل مورد نظر در دايرکتوري وجود دارد";}
else {
if ($_FILES['file']['name']=='index.htm' OR $_FILES['file']['name']=='index.html' OR $_FILES['file']['name']=='defualt.html'  OR $_FILES['file']['name']=='defualt.html'  OR $_FILES['file']['name']=='defualt.asp'  OR $_FILES['file']['name']=='defualt.aspx'
OR $_FILES['file']['name']=='index.php' OR $_FILES['file']['name']=='index.php3' OR $_FILES['file']['name']=='index.php4' OR $_FILES['file']['name']=='index.php5' OR $_FILES['file']['name']=='index.txt'
){
echo "نام وارد شده معتبر نيست";}
else {
if ($_FILES['file'] != "") {
   $dir ="../../uploads/";
   if (copy($_FILES['file']['tmp_name'], $dir.$_FILES['file']['name'])){
   $query=mysql_query("INSERT INTO `upload` (name,size,type,dir) value ('$_FILES[file][name]','".filesize($_FILES['file']['tmp_name'])."','$_FILES[file][type]','$readdir'");
   if ($query){
   echo "فایل مورد نظر با موفقیت ارسال شد";
   }} else {
   exit("متاسفانه مشکلی در ارسال فایل مورد نظر وجود دارد".mysql_error());
   }
  }
}}}}else {echo "فرمت فايل غير قابل قبول مي باشد";}}
دکمه تشکر رو بزنی ها
 

hba

Active Member
اين ميگه توي ديتابيس تو توي فولدر upload ميريزي ميگي تازه تشكر هم بزن؟؟؟؟؟؟

قبلا اموزش ريختن فايل تو ديتابيس رو گذاشته بودم
 

jhoseini

Member
من اسکریپت آپلود فایل تو دیتابیس رو گزاشتم، اما پست رو خوندم، دیدم ایشون میخاد آدرس فایل رو بریزه تو دیتابیس، بره همین پستی که زدم رو حذف کردم، حامد جان فکر میکنم جواب irdavidnet کفابت میکنه (گرچه نگاشم نکردم :d)
 

irdavidnet

Banned
بابا چرا بی خودی میگی من دقیقاً اون مدلی که می خواست رو گذاشتم دیگه .
آدرس رو می ریزه تو بانک .
 

hba

Active Member
ولي تيكه كد خودش كه اول اول گذاشته معلومه اين رو نمي خواهد
 

ali-k

Member
مشکل کد شما در این قسمت هست:
PHP:
if (isset ($_GET['upload'] ))
 {

اینجا مشکل به این صورت هست اول اینکه چرا متغییر از نوع _GET ؟ در زمان ارسال فایل همیشه متد POST هست و متغییری با GET ارسال نمیشه :) پس اگر میخواید چک کنید isset را از $_POST استفاده کنید .

اینجا چون شما شرط گذاشتی بر روی GET و این شرط همیشه نادرست هست پس هیچ اطلاعاتی از اسم و آدرس بوجود نمیاد و نهایتا یک رکورد خالی توی دیتابیس ریخته میشه :)

برای تصحیح اگر فیلدی توی فرم هست به اسم upload پس توی شرط هم از $_POST استفاده کن :)



پ.ن: راه وجود متغییر GET در زمان ارسال با متد POST قرار دادن متغییر در Action فرم هست :) که شرط شما دراین حالت میتوانه درست کار کنه ولی فکر نمیکنم شما همچین کاری را کرده باشید :)
 

dreamer

New Member
با سلام
برای گرفتن فایل بهتر از FILES_$ استفاده کنی نه POST_$ یا GET_$ ولی روش ارسال همان POST باشه
قبل از خواندن محتوا باید اون رو کپی کنی توی یه شاخه دیگه temp_FILE موقتی است و فایل از بین میره
برای کپی از دستور move_uploaded_file استفاده کن
برای خواندن محتوای فایل از دستور file_get_contents استفاده کن
خیلی ساده است امتحان کن
 

جدیدترین ارسال ها

بالا