/
  • مشکل در آپلود فایل

  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی مشکل در آپلود فایل
    نویسنده پیام
    husphp آفلاین
    عضو جدید
    **

    ارسال‌ها: 3
    تاریخ عضویت: ۱۳۹۳ شهريور ۲۵
    اعتبار: 0
    تشکرها : 3
    ( 1 تشکر در 1 ارسال )
    ارسال: #1
    مشکل در آپلود فایل
    سلام
    وقتی میخوام با این کد فایل آپلود کنم این پیغام را بهم میدهد فایل پیوست کردم
    کد PHP:
    $hostname_con1 "127.0.8/";
    $database_con1 "image";
    $username_con1 "root";
    $password_con1 "";
    $size=90000000;
    $iwidth=400;
    $iheight=200;
    if((isset(
    $_FILES['image'])&&($_FILES['image']['size']>0)))
    {
    $imgsize=$_FILES['image']['size'];
    $imgtype=$_FILES['image']['type'];
    $tmpnam=$_FILES['image']['tmp'];
    if(
    $imgsize>$size)
    exit(
    "error:large file size");
    $getimgsize=getimagesize($tmpnam);
    if(!
    $getimgsize)
    exit(
    "error:invalid image file.");
    list(
    $width,$height)=$getimgsize;
    if((
    $width>$iwidth)||($height>$iheight))
    exit(
    "maximum width and height");
    $fp=fopen($tmpnam,'r');
    $imagename=fread($fp,filesize($tmpnam));
    if(!
    get_magic_quotes_gpc())
    $imagename=addslashes($imagename);
    fclose($fp);
    $date=date("y-m-d h:i:s");
    $con1 mysql_pconnect($hostname_con1$username_con1$password_con1) or trigger_error(mysql_error(),E_USER_ERROR);
    mysql_select_db("$database_con1",$con1);
    $query="insert into image(imgtype,img,imgsize,imgdate)values('$imgtype','$imagename','$imgsize','$date')";
    mysql_query($query);
    echo 
    "فایل به خوبی آپلود شد.";     
    }
    ?>[/align]
    پیغام خطایی که بهم میده
    [align=left]Notice: Undefined index: tmp in D:\xampp\htdocs\uplo\uplo.php on line 21

    Warning: getimagesize(): Filename cannot be empty in D:\xampp\htdocs\uplo\uplo.php on line 24 


    فایل‌(های) پیوست شده
    .php  uplo.php (اندازه: 1.51 KB / تعداد دفعات دریافت: 2)
    (آخرین ویرایش در این ارسال: ۱۳۹۳ مهر ۱۳ ۱۱:۱۹ صبح، توسط husphp.)
    ۱۳۹۳ شهريور ۲۹ ۰۱:۲۹ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    alireza.stack آفلاین
    beestak.com
    **

    ارسال‌ها: 12
    تاریخ عضویت: ۱۳۹۳ تير ۱۵
    اعتبار: 2
    تشکرها : 1
    ( 8 تشکر در 6 ارسال )
    ارسال: #2
    RE: مشکل در آپلود فایل
    برای دیباگ بهتر بایستی $_FILES رو بیرون با var_dump چاپ کنی و محتویاتش رو ببینی چیاس:

    برای مثال می نویسی:

    var_dump($_FILES['image'])

    و ببینی چیزی به نام temp ویا tmp و ... داره یا نه و اصلا فایل توسط فرم ارسال شده است یا نه
    __________________________________________________________________________
    جامعه مجازی پیمانکاران و کارفرمایان
    http://www.beestak.com
    ۱۳۹۳ شهريور ۳۰ ۰۶:۵۹ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : husphp
    defence آفلاین
    *defence*
    **

    ارسال‌ها: 28
    تاریخ عضویت: ۱۳۹۳ مهر ۳
    اعتبار: 1
    تشکرها : 8
    ( 6 تشکر در 6 ارسال )
    ارسال: #3
    RE: مشکل در آپلود فایل
    با سلام و خسته نباشید
    من به عنوان یک هکر به شما توصیه می کنم که هیچ وقت عکس ها رو در درون دیتابیس ذخیره نکنید
    در اعظاش می تونید از پرمیشن ها برای ورود دانلود یا آپلود فایل استفاده کنید که خیلی بهینه تر هستند
    کد شما هم یک مقداری از بهینه بودن خارج هست
    ۱۳۹۳ مهر ۳ ۰۴:۵۳ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : husphp
    husphp آفلاین
    عضو جدید
    **

    ارسال‌ها: 3
    تاریخ عضویت: ۱۳۹۳ شهريور ۲۵
    اعتبار: 0
    تشکرها : 3
    ( 1 تشکر در 1 ارسال )
    ارسال: #4
    RE: مشکل در آپلود فایل
    با سلام از اینکه به مشکل من پاسخ دادید متشکرم ببخشید چون من تازه کارم میشه یک مثال عملی استفاده از پرمیشن ها بزنید ممنون میشم.

    دوستان نظرتون در مورد این کد چیه میخوام از نظر امنیتی هم مورد کاوش قرار بگیره
    کد PHP:
    $pic=($_FILES['image']['name']);
    $target="image/";
    $target=$target.basename($_FILES['image']['name']);
    $image_size=$_FILES['image']['size'];
    $image_type=$_FILES['image']['type'];
    $path="image/".$target;
    mysql_connect($hostname_coon,$username_coon,$password_coon)or die(mysql_error());
        
    mysql_select_db($database_coon)or die(mysql_error());
        
    mysql_query("insert into ima(photo,datetim) values('".$pic."','".date('y:m:d h:i:s')."')");
        echo 
    "your file has been uploded in database.";
    $ok=1;
    if(
    $image_size>1000000)
    {
        echo
    "your file is too large.<br>";
        
    $ok=0;
    }
    if(
    $image_type=($_FILES['image']['type']==".php"))
    {echo 
    "no,php files <br>";
    $ok=0;}
    if(
    $ok==0)
    { echo 
    "sorry your file was not uploaded";}
    else
    {
        if(
    move_uploaded_file($_FILES['image']['tmp_name'],$target))
        {echo 
    "the file".basename($_FILES['image']['name'])."has been uploded.";}
        else
        {echo 
    "sory,there was a problom uploding your file.";}
        
    }
    ?>
    (آخرین ویرایش در این ارسال: ۱۳۹۳ مهر ۱۲ ۱۲:۵۵ عصر، توسط husphp.)
    ۱۳۹۳ مهر ۱۲ ۱۲:۱۹ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : defence
    defence آفلاین
    *defence*
    **

    ارسال‌ها: 28
    تاریخ عضویت: ۱۳۹۳ مهر ۳
    اعتبار: 1
    تشکرها : 8
    ( 6 تشکر در 6 ارسال )
    ارسال: #5
    RE: مشکل در آپلود فایل
    داداش سایتت و می خوای روی هاست بیاری بالا یا روی سرور ؟
    تا یک نمونه مثال بزنم
    اطلاعات بیشتر در مورد مجوز ها می تونی به این لینک سر بزنی و اون ها رو بخونی
    یک نمونه البته نمونه وردپرسیش
    ---
    از لحاظ امنیتی هم باید محدودیت اپلود بزاری
    هکر برای این که بتونه ترگت مورد نظرش و بزنه به راحتی می تونه بیاد و یک فایل 100 گیگی اپلود کنه و هاستت بترکه و...
    بهتره محدودیت اپلود در سمت کلاینت بزاری
    الان بیشتر سایت ها هم محدودیت آپلود میزارن
    http://uplooder.net/
    یک نمونش اینه که می تونی نگاه کنی

    خوبی دیتابیس این هست که اطلاعات رو برات مرتب و جمع و جور می کنه ولی ریختن عکس ها توی دیتابیس باعث می شه که دیتابیس رو سنگین و سرعت کوئری هایی که از دیتابیس می گیری و پایین میاری
    مثلا اگه بخوای عکس پروفایل یک نفر و از دیتابیس بخونی و حجمش 2 مگ باشه وقت دیتابیس و علکی یک چند دقیقه یا ثانیه ای می گیره که سرور باید در میلی ثانیه پاسخ بده در اعظاش می تونی یک پوشه درست کنی به ازای هر کاربر حدید که ثبت نام می کنه بعد عکس هاش و تو پوشه خود آپلود کنی این جوری هم از لحاظ امنیتی بهتره

    ---
    این که بهینه ترین روش نگه داری عکس ها چگونه هست و این ها یک مقاله هست که می تونی با یک سرچ تو گوگل به هدفت برسی

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

    زیاده روی هم زیاد کردی
    اگر توابع اپلود فایل رو در یک بنویسی و مستند سازیش هم بکنی بعد ها می تونی چیزی خواستی رو بهش اضافه کنی

    یک مبحث دیگه هم هست داداش و اون مبحث هم اینه که سرعت با امنیت رابطه عکس داره
    هر چی سرعت بره بالا امنیت هم به همون نسبت میاد پایین و برعکس
    سعی کن زیادی امنیت و سرعت در یک کفه ترازو قرار بدی
    (آخرین ویرایش در این ارسال: ۱۳۹۳ مهر ۱۳ ۰۵:۴۷ عصر، توسط defence.)
    ۱۳۹۳ مهر ۱۳ ۰۵:۳۰ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : husphp
    husphp آفلاین
    عضو جدید
    **

    ارسال‌ها: 3
    تاریخ عضویت: ۱۳۹۳ شهريور ۲۵
    اعتبار: 0
    تشکرها : 3
    ( 1 تشکر در 1 ارسال )
    ارسال: #6
    RE: مشکل در آپلود فایل
    از اینکه وقت گذاشتی به سوالاتم جواب دادی ممنونم
    میخوام سایتم رو روی سرور بیارم بالا در مورد آپلود عکس داخل دیتابیس جریان از این قراره که در حال طراحی سایتی هستم که کاربر بتونه عکسهاش برای آگهی در سایت بذاره روشی هم که به نظرم رسید استفاده از دیتابس برای این کار بهتره که هم عکسهای کاربر رو بگیره و هم سایر اطلاعاتش در ضمن عکسها به صورت محدود و کنترل شده میذارم آپلود بشه.
    (آخرین ویرایش در این ارسال: ۱۳۹۳ مهر ۱۶ ۱۱:۴۵ عصر، توسط husphp.)
    ۱۳۹۳ مهر ۱۶ ۱۱:۳۴ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS