Witam Wszystkich!
Mam pewien problem z dodaniem pliku na serwer przez użytkownika.w Skrócie robię to w taki sposób, że:
1. Najpierw wyświetla mi się główne Menu, z którego wybieram taką możliwość jak "Dodaj Przedmiot";
2. Następnie skrypt AJAX pod menu wyświetla mi się formularz, w którym mam pola typu file, text, i button z akcją onclick="UploadujPlik()";
3. funkcja ma wysłać plik wraz z jego nazwą przedmiotu do skryptu przedmiot.php, w którym jest zapisywany plik na serverze, dodawane informacje do Bazy Danych i aktualizowana lista wyświetlających się przedmiotów.

Wydaje mi się, że problem leży między 2. i 3. punktem. Śledząc plik przedmiot.php <?php ... print_r($_FILES); print_r($_POST); ... ?> pierwsza tablica FILES jest pusta a druga, POST posiada pole plik, w której jest tylko tekst (nazwa pliku z dysku), a nie plik;

Proszę Was, abyście spojrzeli trochę na kod i powiedzieli mi, jak to mógłbym przerobić, żeby działało. Nie chcę kodu, ale jedynie co zmienić w funkcji itp.

Oto kod pliku start.php:
  1. <head>
  2. <title>Internetowy dziennik dla Gimnazjum</title>
  3. <script type="text/javascript" language="javascript">
  4.  
  5. var XMLHttpRequestObject = false;
  6. if (window.XMLHttpRequest){
  7. XMLHttpRequestObject = new XMLHttpRequest();
  8. }else if (window.ActiveXObject){
  9. XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
  10. }
  11.  
  12.  
  13. function PobierzPlik(cel,zrodlo){
  14. if(XMLHttpRequestObject){
  15. var p = document.getElementById(cel);
  16. XMLHttpRequestObject.open('GET',zrodlo,'true');
  17. XMLHttpRequestObject.onreadystatechange = function(){
  18. if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
  19. p.innerHTML = XMLHttpRequestObject.responseText;
  20. }
  21. }
  22. XMLHttpRequestObject.send(null);
  23. }
  24. }
  25. function UploadujPlik(){
  26. if (XMLHttpRequestObject){
  27. var w = document.getElementById('k1');
  28. var nazwa = document.getElementById('nazwa').value;
  29. var plik = document.getElementById('plik').value;
  30. var header="nazwa="+nazwa+"&plik="+plik;
  31. XMLHttpRequestObject.open('POST','http://localhost/przedmiot.php','true');
  32. XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  33. XMLHttpRequestObject.onreadystatechange = function (){
  34. if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200){
  35. w.innerHTML = XMLHttpRequestObject.responseText;
  36. }
  37. }
  38. XMLHttpRequestObject.send(header);
  39. }
  40. }
  41. function Usun(value,url,cel){
  42. if (XMLHttpRequestObject){
  43. var w = document.getElementById(cel);
  44. var id = value
  45. XMLHttpRequestObject.open('POST',url,'true');
  46. XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  47. XMLHttpRequestObject.onreadystatechange = function (){
  48. if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200){
  49. w.innerHTML = XMLHttpRequestObject.responseText;
  50. }
  51. }
  52. XMLHttpRequestObject.send("id="+id);
  53. }
  54. }
  55. </head>
  56. <body>
  57. <input type="button" onclick="PobierzPlik('pt1','http://localhost/dodajklase.php');" value="Klasy" />
  58. <input type="button" onclick="PobierzPlik('pt1','http://localhost/dodajnauczyciela.php');" value="Nauczyciel" />
  59. <input type="button" onclick="PobierzPlik('pt1','http://localhost/nadajwychowawstwo.php');" value="Wychowawstwo" />
  60. <input type="button" onclick="PobierzPlik('pt1','http://localhost/dodajdzwonek.php');" value="Dzwonki" />
  61. <input type="button" onclick="PobierzPlik('pt1','http://localhost/dodajsale.php');" value="Dodaj Sale" />
  62. <input type="button" onclick="PobierzPlik('pt1','http://localhost/dodajprzedmiot.php');" value="Dodaj Przedmiot" />
  63. <input type="button" onclick="PobierzPlik('pt1','http://localhost/dodajgrupe.php');" value="Dodaj Grupe" />
  64. <input type="button" onclick="PobierzPlik('pt1','http://localhost/wprowadzplan.php');" value="Plan lekcji" />
  65. </center>
  66. <br><br><br>
  67. <div id="pt1">
  68.  
  69. Wybierz akcje
  70. </div>
  71. </center>
  72. </body>
  73. </html>


Plik dodajprzedmiot.php:
  1. <?php
  2. $dodaj=<<<EDO
  3. <table border="0" width="80%">
  4.  <tr>
  5.   <td>Nazwa:</td>
  6.   <td><input type="text" id="nazwa" /> </td>
  7.   <td>Sylabus: </td>
  8.   <td><input enctype="multipart/form-data" type="file" id="plik" accept="application/msword,application/pdf" /></td>
  9.   <td><input type="button" value="Dodaj" onclick="UploadujPlik();"/></td>
  10.  </tr>
  11. </table>
  12. <br><br>
  13. EDO;
  14. print ($dodaj);
  15. print("<div id=\"k1\">");
  16. include "przedmiot.php";
  17. print("</div>");
  18. ?>


Plik przedmiot.php:
  1. <?php
  2. print_r($_FILES);
  3. print_r($_POST);
  4. if(isset($_FILES['file']['type'])){
  5. if (($_FILES['file']['type'] == "application/msword") || ($_FILES['file']['type'] == "application/pdf")){
  6. if ($_FILES['file']['error'] == 0){
  7. if (file_exists("sylabus/" . $_FILES['file']['name'])){
  8. echo $_FILES['file']['name'] . " Już istnieje. ";
  9. }else{
  10. include "connect.php";
  11. if(isset($_POST['nazwa']))
  12. if($_POST['nazwa']==""){
  13. $plik="sylabus/" . $_FILES['file']['name'];
  14. $nazwa=$_POST['nazwa'];
  15. $query="INSERT INTO przedmiot('$nazwa','$plik')";
  16. $result=mysql_query($query)or die(mysql_error());
  17. move_uploaded_file($_FILES['file']['tmp_name'],"sylabus/" . $_FILES['file']['name']);
  18. }
  19. }
  20. }
  21. }else echo "Niewlasciwy format pliku. Akceptowane formaty to .doc i .pdf";
  22. }
  23. include "connect.php";
  24. $query="SELECT id_przedmiot,nazwa,sylabus FROM przedmiot";
  25. $result=mysql_query($query)or die(mysql_error());
  26. $body=<<<EDO
  27. <table border="0">
  28. <tr>
  29.  <td>Nazwa</td><td>Plik</td>
  30. </tr>
  31. EDO;
  32. while($row=mysql_fetch_array($result)){
  33. $id=$row['id_przedmiot'];
  34. $nazwa=$row['nazwa'];
  35. $plik=$row['plik'];
  36. $body.=<<<EDO
  37. <tr>
  38.  <td>$nazwa</td>
  39.  <td><a href="sylabus/$plik">Pobierz</a></td>
  40.  <td><input type="button" onclick="Usun($id,'usunprzedmiot.php','k1');" value="Usun" /><td>
  41. </tr>
  42. EDO;
  43. }
  44. $body.=<<<EDO
  45. </table>
  46. EDO;
  47. print($body);
  48. ?>


Z góry dziękuję za wszystkie odpowiedzi. Pozdrawiam