За последние 24 часа нас посетили 20524 программиста и 1096 роботов. Сейчас ищут 372 программиста ...

Загрузка картинки через AJAX

Тема в разделе "PHP для новичков", создана пользователем roswww, 1 апр 2019.

  1. roswww

    roswww Активный пользователь

    С нами с:
    15 окт 2016
    Сообщения:
    154
    Симпатии:
    4
    Адрес:
    Cтаврополь
    Доброго времени,
    при загрузке картинки любых форматов и расширений выдаёт - failed
    в чём может быть причина ?
    Менял условия, но это не помогло.

    Код (Text):
    1. <?php
    2. include('db.php');
    3. session_start();
    4. $session_id='1'; //$session id
    5. ?>
    6. <html>
    7. <head>
    8. <title>Ajax Image Upload </title>
    9. </head>
    10.  
    11. <script type="text/javascript" src="scripts/jquery.min.js"></script>
    12. <script type="text/javascript" src="scripts/jquery.form.js"></script>
    13.  
    14. <script type="text/javascript" >
    15. $(document).ready(function() {
    16.      
    17.             $('#photoimg').live('change', function()            {
    18.                        $("#preview").html('');
    19.                 $("#preview").html('<img src="loader.gif" alt="Uploading...."/>');
    20.             $("#imageform").ajaxForm({
    21.                         target: '#preview'
    22.         }).submit();
    23.      
    24.             });
    25.         });
    26. </script>
    27.  
    28. <style>
    29.  
    30. body
    31. {
    32. font-family:arial;
    33. }
    34. .preview
    35. {
    36. width:200px;
    37. border:solid 1px #dedede;
    38. padding:10px;
    39. }
    40. #preview
    41. {
    42. color:#cc0000;
    43. font-size:12px
    44. }
    45.  
    46. </style>
    47. <body>
    48.  
    49.  
    50. <div style="width:600px">
    51.  
    52. <form id="imageform" method="post" enctype="multipart/form-data" action='ajaximage.php'>
    53. Upload your image <input type="file" name="photoimg" id="photoimg" />
    54. </form>
    55. <div id='preview'>
    56. </div>
    57.  
    58.  
    59. </div>
    60. </body>
    61. </html>
    Код (Text):
    1. <?php
    2. include('db.php');
    3. session_start();
    4. $session_id='1'; //$session id
    5. $path = "uploads/";
    6.  
    7.     $valid_formats = array("jpg", "png", "gif", "bmp");
    8.     if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
    9.         {
    10.             $name = $_FILES['photoimg']['name'];
    11.             $size = $_FILES['photoimg']['size'];
    12.          
    13.             if(strlen($name))
    14.                 {
    15.                     list($txt, $ext) = explode(".", $name);
    16.                     if(in_array($ext,$valid_formats))
    17.                     {
    18.                     if($size<(1024*1024))
    19.                         {
    20.                             $actual_image_name = time().substr(str_replace(" ", "_", $txt), 5).".".$ext;
    21.                             $tmp = $_FILES['photoimg']['tmp_name'];
    22.                             if(move_uploaded_file($tmp, $path.$actual_image_name))
    23.                                 {
    24.                                 mysql_query("UPDATE users SET profile_image='$actual_image_name' WHERE uid='$session_id'");
    25.                                  
    26.                                     echo "<img src='uploads/".$actual_image_name."'  class='preview'>";
    27.                                 }
    28.                             else
    29.                                 echo "failed";
    30.                         }
    31.                         else
    32.                         echo "Image file size max 1 MB";
    33.                         }
    34.                         else
    35.                         echo "Invalid file format..";  
    36.                 }
    37.              
    38.             else
    39.                 echo "Please select image..!";
    40.              
    41.             exit;
    42.         }
    43. ?>
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    По ходу, что-то с именем целевой папки или правами на неё. Только расскажи мне, причём тут Yii? Может просто в "Новички" переместить?
     
  3. roswww

    roswww Активный пользователь

    С нами с:
    15 окт 2016
    Сообщения:
    154
    Симпатии:
    4
    Адрес:
    Cтаврополь
    Да я предполагал что у меня об этом спросят - хочу по примеру этого кода переделать свой код YII для работы с AJAX, перенесите если считаете нужным.

    Точно не права, на всех папках и файлах стоят права 777,.
    Код без ошибок?
     
    #3 roswww, 1 апр 2019
    Последнее редактирование: 1 апр 2019
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    В Yii всё происходит совсем по-другому, в доках описано
    Что может быть на первый взгляд, я сказал. Попробуй абсолютный путь к целевой папке. И почему до сих пор расширение mysq юзаешь? Хоть ошибка и не в этом
     
  5. roswww

    roswww Активный пользователь

    С нами с:
    15 окт 2016
    Сообщения:
    154
    Симпатии:
    4
    Адрес:
    Cтаврополь
    У меня PDO, -этот код взял для примера-хочу переделать.
    Попробую другой путь.