Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [html][php]upload zdjęć nie działa [function.move-uploaded-file]
Forum PHP.pl > Forum > PHP
Oscar_83
stworzyłem skrypt do uploadu zdjęć (według książki) i przy wgrywaniu wywala błąd
1 plik to "upload_image.htm"
  1. <title>Umieść obrazek w galerii</title>
  2. </head>
  3.  
  4. <form name="form1" method="post" action="check_image.php"
  5. enctype="multipart/form-data">
  6.  
  7. <table border="0" cellpadding="5">
  8. <tr>
  9. <td>Tytuł obrazka<br>
  10. <em>Przykład: mecz Startu z GKS Wikielec</em></td>
  11. <td><input name="image_caption" type="text" id="item_caption" size="55"
  12. maxlength="255"></td>
  13. </tr>
  14. <tr>
  15. <td>Nazwa użytkownika</td>
  16. <td><input name="image_username" type="text" id="item_caption" size="55"
  17. maxlength="255"></td>
  18. </tr>
  19. <tr>
  20. <td>Umieszczany obraz:</td>
  21. <td><input name="image_filename" type="file" id="image_filename"></td>
  22. </tr>
  23. <br>
  24. <em>Przyjmowane są obrazy w formatach: GIF, JPG/JPEG i PNG.</em>
  25. <p align="center"><input type="submit" name="Submit" value="Wyślij">
  26. &nbsp:
  27. <input type="reset" name="Submit2" value="Wyczyść">
  28. </p>
  29. </form>
  30. </body>
  31. </html>


2 plik: "check_image.php"
  1. <?php
  2. //połączenie z bazą danych
  3. $polaczenie = mysql_connect("mysql2.yoyo.pl", "db396325", "***") or die ("SprawdĽ połączenie z serwerem: " . mysql_error());
  4. mysql_select_db('db396325', $polaczenie)
  5. or die (mysql_error());
  6. mysql_query('SET NAMES latin2');
  7.  
  8. //udostępnienie zmiennych
  9. $image_caption = $_POST['image_caption'];
  10. $image_username = $_POST['image_username'];
  11. $image_tempname = $_FILES['image_filename']['name'];
  12. $today = date(Y-m-d);
  13.  
  14. //umieszczenie obrazu i sprawdzenie jego formatu
  15. $ImageDir ="http://www.startnidzica.yoyo.pl/images/";
  16. $ImageName = $ImageDir . $image_tempname;
  17. if (move_uploaded_file($_FILES['image_filename']['tmp_name'], $ImageName)) {
  18.  
  19. //pobranie informacji na temat umieszczonego obrazu
  20. list($width, $height, $type, $attr) = getimagesize($ImageName);
  21.  
  22. switch ($type) {
  23. case 1:
  24.  $ext = ".gif";
  25.  break;
  26. case 2:
  27.  $ext = ".jpg";
  28.  break;
  29. case 3:
  30.  $ext = ".png";
  31.  break;
  32. default:
  33.  echo "Przykro nam, ale przesłany obraz nie jest w formacie GIF, JPG lub " . "PNG.<br>";
  34.  echo "Kliknij przycisk 'Wstecz' w przeglądarce i spróbuj ponownie.";
  35. }
  36.  
  37. //wstawienie informacji do tabeli images
  38. $insert = "INSERT INTO images
  39.  (image_caption, image_username, image_date)
  40.  VALUES
  41.  ('$image_caption', '$image_username', '$today')";
  42. $insertresults = mysql_query($insert)
  43.  
  44. $lastpicid - mysql_insert_id();
  45.  
  46. $newfilename = $ImageDir . $lastpicid . $ext;
  47.  
  48. rename($ImageName, $newfilename);
  49.  
  50. }
  51. ?>
  52.  
  53. <html>
  54. <head>
  55. <title>Oto umieszczony obrazek!</title>
  56. </head>
  57. <body>
  58. <h1>Seniorzy</h1><br<br>
  59. <p>Oto obrazek, który właśnie umieściłeś na serwerze:</p>
  60. <img src="images/<?php echo $lastpicid . $ext; ?>" align="left">
  61. <strong><?php echo $image_caption; ?></strong><br>
  62. Jest to obraz w formacie <?php echo $ext; ?>.<br>
  63. Ma <?php echo $width; ?> pikseli szerokości i
  64. <?php echo $height; ?> pikseli wysokości.<br>
  65. Został umieszczony w dniu <?php echo $today; ?>.
  66. </body>
  67. </html>


wywala błąd taki:
"Warning: move_uploaded_file(http://www.startnidzica.yoyo.pl/images/sklad.jpg) [function.move-uploaded-file]: failed to open stream: HTTP wrapper does not support writeable connections. in /var/www/sites/yoyo.pl/s/t/startnidzica/upload/check_image.php on line 18

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/var/www/tmp/phpoVhgso' to 'http://www.startnidzica.yoyo.pl/images/sklad.jpg' in /var/www/sites/yoyo.pl/s/t/startnidzica/upload/check_image.php on line 18"


prooszę o pomoc
grit
może się mylę ale patrząc na logi błędów "wrapper does not support writeable connections" i "Unable to move '/var/www/tmp/phpoVhgso' to 'http://www.startnidzica.yoyo.pl/images/sklad.jpg'" stawiał bym na to, że chcesz przesunąć plik z katalogu na serwerze na inny serwer - podałeś w skrypcie pełną ścieżkę URL 'http://www.startnidzica.yoyo.pl...'. Nawet jeśli to ten sam serwer to parser może tego nie akceptować. Spróbuj podać wewnętrzną ścieżkę docelową - coś w stylu '/var/www/images/'
Oscar_83
a jak sprawdzić jaka jest ta wewnętrzna ścieżka docelowa?
Prym
kod wyswietlajacy sciezke serwera (bez katalogów na serwerze)
Kod
$_SERVER['DOCUMENT_ROOT']
Oscar_83
Wyświetliło:

/htdocs
tsharek
nawet w treści błędu masz dokładną ścieżkę;) pozatym zawsze możesz używać relatywnych ścieżek z uruchomionego skryptu
Oscar_83
Miałem w skrypcie kilka błędów:
- format daty nie był w cudzysłowiu
- $lastpicid - mysql_insert_id(); powinno być = zamiast -

do tego miałem złą ścieżkę którą już poprawiłem i i chmod'a nie miałem ustawionego na 777.
Teraz już niby wszystko oki ale niestety dalej nie chce mi wrzucać obrazków na serwer sad.gif co jest nie tak??

oto teraźniejszy kod:
  1. <?php
  2. //połączenie z bazą danych
  3. $polaczenie = mysql_connect("mysql2.yoyo.pl", "db396325", "***") or die ("SprawdĽ połączenie z serwerem: " . mysql_error());
  4. mysql_select_db('db396325', $polaczenie)
  5. or die (mysql_error());
  6. mysql_query('SET NAMES latin2');
  7.  
  8. //udostępnienie zmiennych
  9. $image_caption = $_POST['image_caption'];
  10. $image_username = $_POST['image_username'];
  11. $image_tempname = $_FILES['image_filename']['name'];
  12. $today = date("Y-m-d");
  13.  
  14. //umieszczenie obrazu i sprawdzenie jego formatu
  15.  
  16. $ImageDir ="/var/www/sites/yoyo.pl/s/t/startnidzica/images/";
  17. $ImageName = $ImageDir . $image_tempname;
  18. if (move_uploaded_file($_FILES['image_filename']['tmp_name'], $ImageName)) {
  19.  
  20. //pobranie informacji na temat umieszczonego obrazu
  21. list($width, $height, $type, $attr) = getimagesize($ImageName);
  22.  
  23. switch ($type) {
  24. case 1:
  25.  $ext = ".gif";
  26.  break;
  27. case 2:
  28.  $ext = ".jpg";
  29.  break;
  30. case 3:
  31.  $ext = ".png";
  32.  break;
  33. default:
  34.  echo "Przykro nam, ale przesłany obraz nie jest w formacie GIF, JPG lub " . "PNG.<br>";
  35.  echo "Kliknij przycisk 'Wstecz' w przeglądarce i spróbuj ponownie.";
  36. }
  37.  
  38. //wstawienie informacji do tabeli images
  39. $insert = "INSERT INTO images
  40.  (image_caption, image_username, image_date)
  41.  VALUES
  42.  ('$image_caption', '$image_username', '$today')";
  43. $insertresults = mysql_query($insert)
  44.  
  45. $lastpicid = mysql_insert_id();
  46.  
  47. $newfilename = $ImageDir . $lastpicid . $ext;
  48.  
  49. rename($ImageName, $newfilename);
  50.  
  51. }
  52. ?>
  53.  
  54. <html>
  55. <head>
  56. <title>Oto umieszczony obrazek!</title>
  57. </head>
  58. <body>
  59. <h1>Seniorzy</h1><br<br>
  60. <p>Oto obrazek, który właśnie umieściłeś na serwerze:</p>
  61. <img src="images/<?php echo $lastpicid . $ext; ?>" align="left">
  62. <strong><?php echo $image_caption; ?></strong><br>
  63. Jest to obraz w formacie <?php echo $ext; ?>.<br>
  64. Ma <?php echo $width; ?> pikseli szerokości i
  65. <?php echo $height; ?> pikseli wysokości.<br>
  66. Został umieszczony w dniu <?php echo $today; ?>.
  67. </body>
  68. </html>
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.