За последние 24 часа нас посетили 54211 программистов и 1724 робота. Сейчас ищут 836 программистов ...

Отправка файла на сервер

Тема в разделе "JavaScript и AJAX", создана пользователем igroc, 27 сен 2014.

  1. igroc

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

    С нами с:
    15 июл 2014
    Сообщения:
    75
    Симпатии:
    1
    Всем привет
    есть форма
    Код (Text):
    1. <head>
    2. <script type="text/javascript" src="/js/jquery.min.js"></script>
    3. <form name='form' enctype='multipart/form-data' method='post' action='../rez/add_images.php'>
    4.  
    5. <?
    6. echo'
    7. <input type="file"  accept="image/*" name="myfile" id="myfile" class="input"
    8.  
    9. onChange="return
    10. $.ajax({
    11. type: \'POST\',
    12. url: \'../rez/add_images.php\',
    13. data: \'id='.$rows["id"].'
    14. &img=myfile
    15. \'
    16.  
    17. });"/>
    18.  
    19. ';
    20. ?>
    21. <input type='image'  title='Сохранить'>
    22. </form>
    23. </body>
    24. </html>
    файл add_images.php
    Код (Text):
    1. <?
    2.  
    3. include ('baza.php'); //подключение к базе данных
    4.  
    5. if (isset($_POST['img']))
    6. $id=$_POST['id'];
    7. // Если поле выбора картинки не пустое - закачиваем её на сервер
    8. $maxwidth = "600"; // максимальная ширина картинок на превью
    9. $foto_dir = "/img/"; // Директория для фотографий товаров
    10.  
    11.  
    12. $pref = time();
    13. $ext = substr($_FILES['myfile']['name'], 1 + strrpos($_FILES['myfile']['name'], "."));
    14. if (in_array($ext,array('jpeg'))) $p = 'jpeg';
    15. if (in_array($ext,array('jpe'))) $p = 'jpe';
    16. if (in_array($ext,array('jpg'))) $p = 'jpg';
    17. if (in_array($ext,array('gif'))) $p = 'gif';
    18. if (in_array($ext,array('png'))) $p = 'png';
    19. $foto = $pref . '.' .$p;
    20.  
    21.  
    22. $foto_name = $fotos_dir.$foto; // Полное имя файла вместе с путем
    23. $foto_light_name = $foto; // Имя файла исключая путь
    24. $foto_tag = "<img src=\"$foto_name\" border=\"0\">"; // Готовый тэг для вставки картинки на страницу
    25. $foto_tag_preview = "<img src=\"$foto_name\" border=\"0\" width=\"$maxwidth\">"; // Тот же тэг, но для превью
    26.  
    27. // Текст ошибок
    28. $error_by_mysql = "<label class=\"label\">Ошибка при добавлении данных в базу</span>";
    29. $error_by_file = "<label class=\"label\">Невозможно загрузить файл в директорию. Возможно её не существует</span>";
    30.  
    31.  
    32. // Начало
    33. if(isset($_FILES["myfile"]))
    34. {
    35. $myfile = $_FILES["myfile"]["tmp_name"];
    36. $myfile_name = $_FILES["myfile"]["name"];
    37. $myfile_size = $_FILES["myfile"]["size"];
    38. $myfile_type = $_FILES["myfile"]["type"];
    39. $error_flag = $_FILES["myfile"]["error"];
    40.  
    41.  
    42.  
    43.  
    44. // Если ошибок не было
    45. if($error_flag == 0)
    46. {
    47. $DOCUMENT_ROOT = $_SERVER['DOCMENT_ROOT'];
    48. $upfile = '../tovar/img/' .$foto;
    49. if ($_FILES['myfile']['tmp_name'])
    50. {
    51.  
    52. //Если не удалось загрузить файл
    53.  
    54. if (!move_uploaded_file($_FILES['myfile']['tmp_name'], $upfile))
    55. {
    56. echo "$error_by_file";
    57. exit;
    58. }
    59.  
    60. }
    61. else
    62. {
    63.     echo 'Проблема: возможна атака через загрузку файла. ';
    64.     echo $_FILES['myfile']['name'];
    65.     exit;
    66. }
    67.  
    68. $q = "INSERT INTO 3_images (img) VALUES ('$foto_name')";
    69. $query = mysql_query($q);
    70.  
    71. // Данные успешно внесены в базу данных, выводим сообщение
    72. if ($query == 'true') {
    73. echo "
    74. <div class='text'>
    75. <p>Картинка успешно добавлена на сервер!</p><br><br>
    76. <table border=1>
    77. <tr>
    78. <td>
    79. <a href='add_images_form.php' class='add_images'><div class='add_images_text'>ДОБАВИТЬ ЕЩЕ КАРТИНКУ</div></a>
    80. </td>
    81. <td>
    82. <a href='index.php' class='add_images'><div class='add_images_text'>НА ГЛАВНУЮ</div></a>
    83. </td>
    84. </tr>
    85. </table>
    86. </div>
    87. ";
    88. }
    89.  
    90. // В противном случае, выводим ошибку при добавлении в базу данных
    91. else {
    92. echo "$error_by_mysql";
    93. }
    94. }
    95. elseif ($myfile_size == 0) {
    96. echo "<br><label class='label'>Картинка не выбрана!<br><br>
    97. Вернитесь и выберите картинку!</label><br><br>
    98. <a href='add_images_form.php' class='add_images'><div class='add_images_text'>ВЫБРАТЬ КАРТИНКУ</div></a>";
    99. }
    100. }
    101. ?>
    при нажатии кнопки сохранить все работает а как сделать чтобы ее не надо было нажимать?

    просто добавляется еще
    Код (Text):
    1. /**********img**********/
    2.  
    3. #img{
    4.  
    5.       overflow:hidden;
    6.       width:20px;
    7.       height:20px;
    8.       cursor:pointer;
    9.       background:url(../images/icon-folder-open.gif) no-repeat;
    10.    
    11.         /*background: red;*/
    12.  }
    13.  
    14.  #img   input {
    15.       opacity:0;
    16.       filter:alpha(opacity:0);
    17.       font-size:199px;
    18.       cursor:pointer;
    19.       padding:0px;
    20.       margin:0px;
    21.       border:none;
    22.       margin-left:-450px;
    23.    /*background: red;*/
    24.  
    25. }
    26. /**********end img**********/