Witam, mam problem dotyczący wysyłania plików na serwer dokładnie zdjęcia.
Używam do tego jQuery UI. Próbuje robić to poprzez metodę POST, która przekazuje do osobnego pliku PHP dane i dodaje je do bazy danych. Wszystko dane się dodają poza wysyłaniem pliku. Jak wykonać tego typu przekazywanie danych z jQuery do PHP aby upload był wykonywany już w pliku PHP? Testować można na http://jokersite.website.pl/test/

Pokazuje kod index.php
  1. <!DOCTYPE html>
  2. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  3. <title>TEST</title>
  4. <link type="text/css" href="css/start/jquery-ui-1.8.custom.css" rel="stylesheet" />
  5. <link type="text/css" href="css/styl.css" rel="stylesheet" />
  6. <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
  7. <script type="text/javascript" src="js/jquery-ui-1.8.custom.min.js"></script>
  8. <script type="text/javascript">
  9. $(function() {
  10. $("#dialog").dialog("destroy");
  11.  
  12. var wpis = $("#wpis"),
  13. zdjecie = $("#zdjecie"),
  14. allFields = $([]).add(wpis).add(zdjecie),
  15. tips = $(".validateTips");
  16.  
  17. function updateTips(t) {
  18. tips
  19. .text(t)
  20. .addClass('ui-state-highlight');
  21. setTimeout(function() {
  22. tips.removeClass('ui-state-highlight', 1500);
  23. }, 500);
  24. }
  25.  
  26. function checkLength(o,n,min,max) {
  27. if ( o.val().length > max || o.val().length < min ) {
  28. o.addClass('ui-state-error');
  29. updateTips("" + n + ": musi mieć od "+min+" do "+max+" znaków.");
  30. return false;
  31. } else {
  32. return true;
  33. }
  34. }
  35.  
  36. function checkRegexp(o,regexp,n) {
  37. if ( !( regexp.test( o.val() ) ) ) {
  38. o.addClass('ui-state-error');
  39. updateTips(n);
  40. return false;
  41. } else {
  42. return true;
  43. }
  44. }
  45.  
  46. $("#formularz").dialog({
  47. autoOpen: false,
  48. height: 450,
  49. width: 450,
  50. modal: true,
  51. buttons: {
  52. 'Dodaj wpis...': function() {
  53. var bValid = true;
  54. allFields.removeClass('ui-state-error');
  55.  
  56. bValid = bValid && checkLength(wpis,"Wpis",3,40); //sprawdzanie znaków łańcucha
  57.  
  58. if (bValid) {
  59. $.post("plik.php", {
  60. wpis: wpis.val(),
  61. zdjecie: zdjecie.val()
  62. });
  63. $('#users').load('index.php #users');
  64. $(this).dialog('close');
  65. }
  66. },
  67. Wyjdź: function() {
  68. $(this).dialog('close');
  69. }
  70. },
  71. close: function() {
  72. allFields.val('').removeClass('ui-state-error');
  73. }
  74. });
  75.  
  76. $('#dodaj_wpis')
  77. .button()
  78. .click(function() {
  79. $('#formularz').dialog('open');
  80. });
  81.  
  82. });
  83. </head>
  84. <div id="formularz" title="Formularz">
  85. <p class="validateTips">Prosimy o uzupełnienie formularza.</p>
  86. <form enctype="multipart/form-data">
  87. <label for="wpis"><b>Wpis:</b></label>
  88. <input type="text" name="wpis" id="wpis" class="text ui-widget-content ui-corner-all" />
  89. <label for="zdjecie"><b>Zdjęcie</b> (tylko format *.jpg):</label>
  90. <input type="file" name="zdjecie" id="zdjecie" size="60" />
  91. </form>
  92. </div>
  93. <button id="dodaj_wpis">Dodaj wpis...</button>
  94. <div id="users-contain" class="ui-widget">
  95. <div id="users">
  96. <table class="ui-widget ui-widget-content">
  97. <tr class="ui-widget-header ">
  98. <th>Wpis</th>
  99. <th>Zdjecie</th>
  100. </tr>
  101. </thead>
  102. <?php
  103. //POŁĄCZENIE Z BAZA
  104.  
  105. $zapytanie = mysql_query("SELECT * FROM test2");
  106. while ($rekord = mysql_fetch_array ($zapytanie)) {
  107. ?>
  108. <tr>
  109. <td><?php echo $rekord['wpis'] ?></td>
  110. <td><a target="_blank" href="<?php echo $rekord['zdjecie'] ?>">Zobacz</a></td>
  111. </tr>
  112. <?php } ?>
  113. </tbody>
  114. </table>
  115. </div>
  116. </div>
  117. </body>
  118. </html>


kod plik.php
  1. <?php
  2. //POŁĄCZENIE Z BAZA
  3.  
  4. if($_POST['wpis']) {
  5. $filename = $_FILES["zdjecie"]["name"];
  6. move_uploaded_file($_FILES['zdjecie']['tmp_name'],"$filename");
  7. mysql_query("INSERT INTO test2 (id, wpis, zdjecie) VALUES ('', '{$_POST['wpis']}', '$filename');");
  8. }
  9. ?>


Pozdrawiam i bardzo proszę o rade...