صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 12

موضوع: درخواست تغییر در این کد php برای آپلود فایل

  1. #1
    عضو انجمن
    تاریخ عضویت
    Jul 2011
    نوشته ها
    134
    تشکر تشکر کرده 
    323
    تشکر تشکر شده 
    99
    تشکر شده در
    87 پست

    پیش فرض درخواست تغییر در این کد php برای آپلود فایل

    سلام دوستان
    کسی میدونه در فایل addshekayat.php چیکار باید بکنم تا قسمت آپلود علاوه بر عکس فرمت های zip , rar و... هم آپلود کنه ؟
    و در فایل shekayat.php در قسمتی که تصویر رو نشون میده اگر تصویر بود نشون بده و اگر فایل فشرده بود ی آیکن نشون بده با لینک دانلودش
    ممنونم میشم اگه کمک کنید برای پروژه دانشگاه می خوام .
    فایل های پیوست شده فایل های پیوست شده

  2. # ADS




     

  3. #2
    عضو انجمن M.Abooali آواتار ها
    تاریخ عضویت
    Apr 2013
    محل سکونت
    Shiraz
    نوشته ها
    269
    تشکر تشکر کرده 
    149
    تشکر تشکر شده 
    841
    تشکر شده در
    385 پست

    پیش فرض پاسخ : درخواست تغییر در این کد php برای آپلود فایل

    البته اصلا شیوه آپلود شما به درستی بررسی کننده Mime/type فایل ها نیست و به سادگی میشود دورش زد و عملا امنیت بسیار پایینی داره این شیوه کنترل پسوند ها.

    شما این خط را پیدا کنید:

    کد PHP:
           $uploadfile $uploaddir $id '.gif'
    آن را حذف و جاش این کدها را بزارید:
    کد PHP:
          $image getimagesize($_FILES['pic']['tmp_name']);
          
    $file_ext $image['mime'];
          
          if (
    $file_ext='image/gif') {
             
    $uploadfile $uploaddir $id '.gif';
          } 
          elseif (
    $file_ext='application/zip'
          {
             
    $uploadfile $uploaddir $id '.zip';
          } 
          elseif (
    $file_ext='application/x-rar-compressed'
          {
             
    $uploadfile $uploaddir $id '.rar';
          } 
          else 
          {
    die(
    'پسوند فایل ها صحیح نمی باشد!');
          } 
    با کد بالا ما اول پسوند فایل را کشف و برابر متغیر file_ext قرار دادیم.

    البته شیوه های دیگه ای هم هست برای کشف پسوند، اما این شیوه نه به نصب بود image_gd روی سرور نیاز دارد، و نه تابع مرورگر است (قابل دور زدن به راحتی نیست).

    سپس با قیاس type فایل، پسوند مورد نظر را به انتهای نامش اضاف میکنیم.

    من براتون 3 تا پسوند را گذاشتم، اگر خواستید می توانید دیگر پسوند ها را نیز مجاز کنید، کافیست شرط جدید برای اون پسوند به کد اضاف کنید، این هم Mime/type های پر کاربرد:

    کد PHP:
                'txt' => 'text/plain',
                
    'htm' => 'text/html',
                
    'html' => 'text/html',
                
    'php' => 'text/html',
                
    'css' => 'text/css',
                
    'js' => 'application/javascript',
                
    'json' => 'application/json',
                
    'xml' => 'application/xml',
                
    'swf' => 'application/x-shockwave-flash',
                
    'flv' => 'video/x-flv',

                
    // images
                
    'png' => 'image/png',
                
    'jpe' => 'image/jpeg',
                
    'jpeg' => 'image/jpeg',
                
    'jpg' => 'image/jpeg',
                
    'gif' => 'image/gif',
                
    'bmp' => 'image/bmp',
                
    'ico' => 'image/vnd.microsoft.icon',
                
    'tiff' => 'image/tiff',
                
    'tif' => 'image/tiff',
                
    'svg' => 'image/svg+xml',
                
    'svgz' => 'image/svg+xml',

                
    // archives
                
    'zip' => 'application/zip',
                
    'rar' => 'application/x-rar-compressed',
                
    'exe' => 'application/x-msdownload',
                
    'msi' => 'application/x-msdownload',
                
    'cab' => 'application/vnd.ms-cab-compressed',

                
    // audio/video
                
    'mp3' => 'audio/mpeg',
                
    'qt' => 'video/quicktime',
                
    'mov' => 'video/quicktime',

                
    // adobe
                
    'pdf' => 'application/pdf',
                
    'psd' => 'image/vnd.adobe.photoshop',
                
    'ai' => 'application/postscript',
                
    'eps' => 'application/postscript',
                
    'ps' => 'application/postscript',

                
    // ms office
                
    'doc' => 'application/msword',
                
    'rtf' => 'application/rtf',
                
    'xls' => 'application/vnd.ms-excel',
                
    'ppt' => 'application/vnd.ms-powerpoint',

                
    // open office
                
    'odt' => 'application/vnd.oasis.opendocument.text',
                
    'ods' => 'application/vnd.oasis.opendocument.spreadsheet'
    البته اگر بیش از 5 مورد خواستید استفاده کنید بهتره از array یا توابع کامل تر بهره ببرید که بیخود اسکریپت سنگین نشود.

    یک شرط هم آخرش هست که در صورتی که پسوند جزو موارد تعریف شده شما نبود پیغام خطا نمایش داده شود. می توانید به جای نمایش پیام مثلا کاربر را هدایت کنید به صفحه خطا یا ... .


    - - - Updated - - -

    امیدوارم کدها جواب دهد، چون اسکریپت کامل شما اینجا نیست، امکان تست نبود.

    چون پروژه دانشگاه هست، قسمت دوم درخواست را گذاشتم خودتان با نگاه به کدهای قسمت اول کشف کنید.
    ویرایش توسط M.Abooali : May 17th, 2014 در ساعت 14:53
    [ فعالیت تجاری در اینجا ندارم | پاسخ سوالات فقط در تاپیک | اطلاعات بیشتر درباره من: https://abooali.ir ]

  4. تعداد تشکر ها ازM.Abooali به دلیل پست مفید


  5. #3
    عضو انجمن
    تاریخ عضویت
    Jul 2011
    نوشته ها
    134
    تشکر تشکر کرده 
    323
    تشکر تشکر شده 
    99
    تشکر شده در
    87 پست

    پیش فرض پاسخ : درخواست تغییر در این کد php برای آپلود فایل

    ممنونم ازتون خیلی لطف کردید
    امیدوارم بتونم جبران کنم

  6. #4
    عضو انجمن
    تاریخ عضویت
    Jul 2011
    نوشته ها
    134
    تشکر تشکر کرده 
    323
    تشکر تشکر شده 
    99
    تشکر شده در
    87 پست

    پیش فرض پاسخ : درخواست تغییر در این کد php برای آپلود فایل

    دوست عزیز
    هنوز هم فقط فایل های gif آپلود میشه
    ولی فایل های zip و rar آپلود نمیشه
    اسکریپت کامل رو میزارم
    ممنون
    فایل های پیوست شده فایل های پیوست شده

  7. #5
    عضو انجمن M.Abooali آواتار ها
    تاریخ عضویت
    Apr 2013
    محل سکونت
    Shiraz
    نوشته ها
    269
    تشکر تشکر کرده 
    149
    تشکر تشکر شده 
    841
    تشکر شده در
    385 پست

    پیش فرض پاسخ : درخواست تغییر در این کد php برای آپلود فایل

    من تعجب هستم، سری قبل خیلی پر اشتباه کد را اینجا گذاشتم برات. اصلا نیاز نیست به اون شکل کار بشود. یک راه حل ساده تر هم بای شناسایی type فایل ها به کار بردیم که راحت مستقیم شما پسوندش را بزنید. البته ساده تر از شیوه بالا قابل دور زدن هست اما خوب برای پروژه شما مشکلی نیست

    به جای اون کد که بالا گفتم، کد زیر را جانشین کن.

    کد PHP:
          $path $_FILES['pic']['name'];
          
    $file_ext pathinfo($pathPATHINFO_EXTENSION);
          
          if (
    $file_ext=='gif') {
             
    $uploadfile $uploaddir $id '.gif';
          }
          elseif (
    $file_ext=='zip')
          {
             
    $uploadfile $uploaddir $id '.zip';
          }
          elseif (
    $file_ext=='rar')
          {
             
    $uploadfile $uploaddir $id '.rar';
          }
          else
          {
           die (
    "<br><br>پسوند مجاز نیست<br><br>$file_ext");
          } 
    تستش کردم جواب میده کامل.

    فقط در صفحه نمایش شکایت ها، دیگه باید همین شروط را اعمال کنی تا پسوند صحیح فایل کشف بشه و بعد از کشف پسوند فایل شرط بنویسی که اگر zip بود مثلا آیکون خاص خودش نمایش داده بشه یا مثلا اگر عکس بود خود عکس نمایش داده بشه و ....
    ویرایش توسط M.Abooali : May 17th, 2014 در ساعت 21:28
    [ فعالیت تجاری در اینجا ندارم | پاسخ سوالات فقط در تاپیک | اطلاعات بیشتر درباره من: https://abooali.ir ]

  8. تعداد تشکر ها ازM.Abooali به دلیل پست مفید


  9. #6
    عضو انجمن
    تاریخ عضویت
    Jul 2011
    نوشته ها
    134
    تشکر تشکر کرده 
    323
    تشکر تشکر شده 
    99
    تشکر شده در
    87 پست

    پیش فرض پاسخ : درخواست تغییر در این کد php برای آپلود فایل

    خیلی ممنونم دوست من
    خیلی لطف کردید

  10. #7
    عضو انجمن M.Abooali آواتار ها
    تاریخ عضویت
    Apr 2013
    محل سکونت
    Shiraz
    نوشته ها
    269
    تشکر تشکر کرده 
    149
    تشکر تشکر شده 
    841
    تشکر شده در
    385 پست

    پیش فرض پاسخ : درخواست تغییر در این کد php برای آپلود فایل

    در پیام خصوصی فرموده بودین مشکل دارید هنوز، این محتویات فایل هست، که من کاملا تست کردم آپلود هم می کند:

    کد PHP:
    <?php
        session_start
    ();
        require(
    "dbConnect.php"); 
    ?>
    <?php
      
    if (isset($_POST['action']))
      {
        
    $action addslashes($_POST['action']);
        
    $subject addslashes($_POST['subject']);
        
    $person addslashes($_POST['person']);
        
    $text addslashes($_POST['text']);
        if (
    $action == 'new')
        {
          
    $sql "INSERT INTO `shekayat`(`subject`,`text`,`person`)"
                 
    ."VALUES('$subject','$text','$person')";
          
    mysql_query($sql);
          
    $id mysql_insert_id();
          
    $uploaddir 'pic/';
          
          
    $path $_FILES['pic']['name'];
          
    $file_ext pathinfo($pathPATHINFO_EXTENSION);
          
          if (
    $file_ext=='gif') {
             
    $uploadfile $uploaddir $id '.gif';
          } 
          elseif (
    $file_ext=='zip'
          {
             
    $uploadfile $uploaddir $id '.zip';
          } 
          elseif (
    $file_ext=='rar'
          {
             
    $uploadfile $uploaddir $id '.rar';
          } 
          else 
          {
           die (
    "<br><br>پسوند مجاز نیست<br><br>$file_ext");
          } 
          
          !
    move_uploaded_file($_FILES['pic']['tmp_name'], $uploadfile);

          
    header('Location: shekayat.php');
        }
      }
    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>
        <link rel="stylesheet" type="text/css" href="style.css" />
        <meta  http-equiv="content-type" content="text/html;  charset=utf-8" />
        <title>سايت تاکسیرانی</title>
        <style type="text/css">
    .auto-style1 {
        font-family: Tahoma;
    }
    </style>
    </head>

    <body style="background-image: url('pic/Abstract%20Green%20Wallpaper.jpg')">

        <div id="main">
            <div id="banner">
                <img alt="" height="132" src="pic/banner.jpg" width="751"></div>
            <?php
              
    require("menu.php");
            
    ?>
            <div id="rbody">
              <form action="#" method="post" enctype="multipart/form-data">
                <input type="hidden" name="action" value="new" />
                <table>
                    <tr>
                        <td>موضوع شکايت/تشویق</td>
                        <td>
                        <input name="subject" type="text" value="" class="auto-style1" /> </td>
                    </tr>
                    <tr>
                        <td>نام شخص</td>
                        <td>
                        <input name="person" type="text" value="" class="auto-style1" /> </td>
                    </tr>
                    <tr>
                        <td>متن</td>
                        <td><textarea name="text" class="auto-style1" ></textarea> </td>
                    </tr>
                    <tr>
                        <td>تصوير</td>
                        <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
                        <td><input name="pic" type="file" class="auto-style1"/> </td>
                    </tr>
                    <tr>
                        <td colspan="2">
                            <input type="submit" value="ثبت" class="auto-style1" />
                            <input type="reset" value="پاک" class="auto-style1" />
                        </td>
                    </tr>
                </table>
              </form>
            </div>
        </div>

    </body>

    </html>
    [ فعالیت تجاری در اینجا ندارم | پاسخ سوالات فقط در تاپیک | اطلاعات بیشتر درباره من: https://abooali.ir ]

  11. تعداد تشکر ها ازM.Abooali به دلیل پست مفید


  12. #8
    عضو انجمن
    تاریخ عضویت
    Jul 2011
    نوشته ها
    134
    تشکر تشکر کرده 
    323
    تشکر تشکر شده 
    99
    تشکر شده در
    87 پست

    پیش فرض پاسخ : درخواست تغییر در این کد php برای آپلود فایل

    ممنون از پاسخگوییتون
    ولی هنوزم آپلود نمیکنه
    به ظاهر در خود برنامه آپلود میشه و داخل صفحه نشون داده میشه ولی هیچ فایلی به پوشه مورد نظر که همون pic باشه منتقل نمیشه .

  13. #9
    عضو انجمن
    تاریخ عضویت
    Jul 2011
    نوشته ها
    134
    تشکر تشکر کرده 
    323
    تشکر تشکر شده 
    99
    تشکر شده در
    87 پست

    پیش فرض پاسخ : درخواست تغییر در این کد php برای آپلود فایل

    دوستان کسی نمی دونه مشکل کجاست ؟
    تا عصر باید تحویل بدم پروژه رو

  14. #10
    عضو انجمن M.Abooali آواتار ها
    تاریخ عضویت
    Apr 2013
    محل سکونت
    Shiraz
    نوشته ها
    269
    تشکر تشکر کرده 
    149
    تشکر تشکر شده 
    841
    تشکر شده در
    385 پست

    پیش فرض پاسخ : درخواست تغییر در این کد php برای آپلود فایل

    فایل منتقل میشه دوست عزیز، من تست کردم.

    تنها مسئله این است که شما دارین رو php نسخه چند تستش می کنید؟

    من با 5.3.5 تست کردم بدون مشکل، هم فایل آپلود شده و به مسیر صحیح هدایت می شود و هم پسوند فایل درست تفکیک می شود. شما با این نسخه تست کنید.
    [ فعالیت تجاری در اینجا ندارم | پاسخ سوالات فقط در تاپیک | اطلاعات بیشتر درباره من: https://abooali.ir ]

  15. تعداد تشکر ها از M.Abooali به دلیل پست مفید


صفحه 1 از 2 12 آخرینآخرین

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. رقصیدن با گوگل: تغییر، تغییر و باز هم تغییر در الگوریتم
    توسط sibait در انجمن مباحث و منابع آموزشی
    پاسخ ها: 0
    آخرين نوشته: July 16th, 2017, 04:22
  2. پاسخ ها: 0
    آخرين نوشته: January 10th, 2017, 16:13
  3. بعد از تغییر ip ــیِ لایسنس ، cid و lid تغییر پیدا می کنه؟
    توسط mha1368 در انجمن دايرکت ادمين DirectAdmin
    پاسخ ها: 8
    آخرين نوشته: September 24th, 2015, 23:43
  4. در خواست کمک برای تغییر تنظیمات کلوکسو بعد از تغییر ایپی اصلی vps
    توسط cacodemon در انجمن کلوکسو يا ال ايکس ادمين Kloxo or LXAdmin
    پاسخ ها: 10
    آخرين نوشته: June 16th, 2013, 14:50
  5. تغییر timezone وب سایت در .htaccess - تغییر زمان
    توسط irmizban در انجمن سی پنل CPanel
    پاسخ ها: 0
    آخرين نوشته: February 19th, 2012, 22:17

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •