Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Wygrywanie obrazków
Forum PHP.pl > Forum > Przedszkole
mrk9109
Witam otóż mam taki problem 1 napisałem sobie prosty skrypt potem chciałem przerobić aby wgrywanie obrazka było z dysku noo i zrobiłem jak jak tu :
http://php.net/manual/en/function.move-uploaded-file.php
No i nie wiem co robię źle ;/ na dole przedstawiam część kodu odpowiedzialnego za dodawanie zawartosci
  1. // Dodawanie Danych
  2.  
  3. if($akcja == 'dodaj')
  4. {
  5. $tytul = $_POST['tytul'];
  6. $obrazek = $_FILES ['obrazek'];
  7. $mini = $_POST['mini'];
  8. $nazwa = $_POST['nazwa'];
  9. $klient = $_POST['klient'];
  10. $online = $_POST['online'];
  11. $opis = $_POST['opis'];
  12.  
  13.  
  14. // Ladowanie Pliku
  15.  
  16. $uploads_dir = '/images/portfolio/';
  17. foreach ($_FILES["obrazek"]["error"] as $key => $error) {
  18. if ($error == UPLOAD_ERR_OK) {
  19. $tmp_name = $_FILES["obrazek"]["tmp_name"][$key];
  20. $name = $_FILES["obrazek"]["name"][$key];
  21. move_uploaded_file($tmp_name, "$uploads_dir/$name");
  22. }
  23. }
  24.  
  25. echo '<script language="JavaScript" type="text/javascript">
  26. <!--
  27. function chkFormular() {
  28. if(!validbbcode(document.getElementById(\'message\').value, \'admin\')){
  29. return false;
  30. }
  31. }
  32. -->
  33. </script>';
  34.  
  35. eval ("\$addbbcode = \"".gettemplate("addbbcode", "html", "admin")."\";");
  36.  
  37. echo '<form method="post" id="post" name="post" action="admincenter.php?site=portfolio&akcja=dodaj" onsubmit="return chkFormular();">
  38. <br />
  39. <b><h1>Projekt - Dodaj</h1></b><br />';
  40.  
  41. echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">
  42. <tr>
  43. <td valign="top">'.$addbbcode.'</td>
  44. </tr>
  45. </table>';
  46.  
  47. echo '
  48. <table>
  49. <tr>
  50. <td width="100"><b>Tytul:</b></td>
  51. <td width="300"><input type="text" name="tytul" size="81"></td>
  52. </tr>
  53. <tr>
  54. <td width="100"><b>Obrazek:</b></td>
  55. <td width="300"><input type="file" name="obrazek"></td>
  56. </tr>
  57. <tr>
  58. <td width="100"><b>Miniaturka Link:</b></td>
  59. <td width="300"><input type="text" name="mini" size="81"></td>
  60. </tr>
  61. <tr>
  62. <td width="100"><b>Nazwa Projektu:</b></td>
  63. <td width="300"><input type="text" name="nazwa" size="81"></td>
  64. </tr>
  65. <tr>
  66. <td width="100"><b>Klient:</b></td>
  67. <td width="300"><input type="text" name="klient" size="81"></td>
  68. </tr>
  69. <tr>
  70. <td width="100"><b>Online:</b></td>
  71. <td width="300"><input type="text" name="online" size="81"></td>
  72. </tr>
  73. <tr>
  74. <td width="100"><b>Opis:</b></td>
  75. <td><textarea id="message" name="opis" rows="15" cols="" style="width: 100%;"></textarea></td>
  76. </tr>
  77. <tr><br /></tr>
  78. </table>
  79. <table>
  80. <tr>
  81. <td><div style="float: right;">
  82. <input type="submit" name="save" value="Dodaj" />
  83. <td><input type="submit" name="anuluj" value="Anuluj" /></td>
  84. </div></td>
  85. </tr>
  86. </form>
  87. ';
  88.  
  89. if($_POST['save']) {
  90.  
  91. safe_query("INSERT INTO ".PREFIX."portfolio (`id`, `tytul`, `obrazek`, `mini`, `nazwa`, `klient`, `online`, `opis`)
  92. VALUES
  93. (
  94. '',
  95. '".$tytul."',
  96. '".$obrazek."',
  97. '".$mini."',
  98. '".$nazwa."',
  99. '".$klient."',
  100. '".$online."',
  101. '".$opis."'
  102. )");
  103.  
  104. echo 'Dodana tresc <br />';
  105.  
  106. @header('Location: admincenter.php?site=portfolio');
  107. }
  108.  
  109. if($_POST['anuluj']) {
  110.  
  111. echo 'Anuluj<br />';
  112.  
  113. @header('Location: admincenter.php?site=portfolio');
  114. }
  115.  
  116. }
  117.  
  118. echo '
  119. </table>';
kkuubbaa88
średnio tak wszystko sprawdzać... może powiedz jakiego rodzaju błędy otrzymujesz ?
mrk9109
noo wogule mi nie wgrywa obrazka ;/ tylko z tym mam problem
peter13135
  1. print_r($_FILES);

daj to np. przed move_uploaded_file i może na podstawie tego coś wymyślimy
mrk9109
nic dalej to samo all laduje normalnie inne dane ale obrazka nie wgrywa ...
amii
Skąd pobierasz zmienną $akcja ? Nie widzę żebyś przypisywał do niej wartość z tablic super globalnych. Tam raczej powinno być $_GET['akcja']
mrk9109
jest smile.gif to część kodu tylko odpowiedzialnego za wgrywanie danych . I inne dane mi wgrywa opis itp tylko obrazka nie laduje
kkuubbaa88
z tego co mi się wydaje to w tym miejscu pobierasz całą tablicę, a nie nazwę pliku:
  1. $obrazek = $_FILES ['obrazek'];

poza tym nie za bardzo wiem po co Ci pętla i sprawdzanie errorów i później klucz do tablicy ?
  1. $tmp_name = $_FILES["obrazek"]["tmp_name"][$key];

dodatkowo w ogóle nie sprawdzasz czy obrazek jest obrazkiem...
Spróbuj w ten sposób:
  1. if($_FILES['obrazek']['error']!==4 && $_FILES['obrazek']['size'] >=0){
  2. $info = getimagesize($_FILES['obrazek']['tmp_name']);
  3. if($info['mime'] == 'image/gif' or $info['mime'] == 'image/jpeg' or $info['mime'] == 'image/png'){
  4. move_uploaded_file($_FILES['obrazek']['tmp_name'],"/images/portfolio/".$_FILES['obrazek']['name']);
  5. }
  6. }

powinno zadziałać... resztę sobie przerób wedle własnych potrzeb...
mrk9109
zmieniłem na to co dałeś i też nie działa ....
daje cały kod:
http://wklej.org/id/564881/
teraz jest zmienione na to co ty podałeś
kkuubbaa88
a jakiś błąd wyskoczył ? jeżeli nie to sprawdź w logach, albo uruchom wyświetlanie błędów... dzisiaj nie wziąłem magicznej różdżki, a wróżenie z fusów już wyszło z mody smile.gif
mrk9109
nie mówiłem już nie wyskakuje żądny błąd inne treści z formularza takie jak opis itp zapisuje bez niczego tylko obrazka nie zapisuje i nie wgrywa ... i nie wiem dlaczego i prze-sto pytam tu
mrk9109
pisze poprawnie ... problem dotyczy wgrywania obrazka wogule go nie laduje na serwer itp
peter13135
Staraj się pisać poprawniej. Purystą językowym nie jestem, ale trudno Cię zrozumieć.
Linijka kodu z mojego poprzedniego postu nie miała rozwiązać problemu, a jedynie sprawdzić czy plik wysłał się poprawnie. Gdybyś wkleił tutaj to co print_r zwróciło, to możliwe, że pomogło by to nam w rozwiązaniu Twojego problemu.

edit://
HAHA. "piszę poprawnie". Dobry żart. W Twoim poście nie ma ani jednej wielkiej litery, ani jednego znaku interpunkcyjnego, no i przede wszystkim "wogule" się pisze trochę inaczej.
mrk9109
nie zamierzam się z tobą kłócić o pisownie bo nie po to jest ten temat



Działa ale wgrywa obrazek mi bez nazwy (.gif) nic więcej dlaczego ? o to kod :

http://wklej.org/id/564917/
kkuubbaa88
o rany rany... powiedz mi gdzie masz w formie:
  1. enctype="multipart/form-data"

bo nie zauważyłem... ?
mrk9109
jest ? ... przyjrzy się
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.