Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z odczytem obrazków wgranych na serwer
ewuski
post 18.11.2004, 17:32:08
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 18.11.2004

Ostrzeżenie: (0%)
-----


sad.gif
Mam problem z odczytem obrazków przez serwer (taki jest mój wniosek). Zdjecia za pomoca ponizszego pliku przegrywaja sie do wybranego katalogu. Natomiast przy odczycie przez jakikolwiek skrypt, zamiast obrazka pojawia sie klasyczny pusty prostokat.

Sprawdzilam wszystko : obrazek sie kopiuje, sciezka dostepu do niego jest poprawna. Ponadto po przegraniu z powrotem np. przez FTP do mnie na dysk obrazek czyta sie prawilowo.

W czym tkwi blad ? Prosze o pomoc ! Z góry wielkie dzieki exclamation.gif!

Podaje kod:

////////////////////////////
<?

if($action=='photoedit') {


?>
<form action="<? print $PHP_SELF; ?>" method="post" enctype="multipart/form-data">
Maksymalny rozmiar pliku to 100 KB !<br/>
Maksymalna szerokosc zdjecia to 500px.<br/>
Plik : <input type="hidden" name="MAX_FILE_SIZE" value="100000">
<input type="hidden" name="id" value="<? print $id; ?>">
<input type="hidden" name="action" value="photoadd">
<input type="file" name="userfile" size="50">
<input type="submit" name="add" value="Dodaj plik">
</form>
<?

}else if($action=="photoadd") {

// $plikuzytkownika - miejsce tymczasowej lokalizacji pliku na serwerze WWW
$userfile = $HTTP_POST_FILES['userfile']['tmp_name'];

// $plikuzytkownika_name - nazwa pliku w systemie uzytkownika
$userfile_name = $HTTP_POST_FILES['userfile']['name'];

// $plikuzytkownika_size - wielkosc pliku w bajtach
$userfile_size = $HTTP_POST_FILES['userfile']['size'];

// $plikuzytkownika_type - typ pliku w systemie MIME, np. image/gif
$userfile_type = $HTTP_POST_FILES['userfile']['type'];

// $plikuzytkownika_error - kod bledu zwiazanego z wysylaniem pliku
$userfile_error = $HTTP_POST_FILES['userfile']['error'];

$id = $_POST['id'];

if ($userfile_error > 0)
{
echo 'Problem: ';
switch ($userfile_error)
{
case 1: echo 'Rozmiar pliku przekroczyl wartosc upload_max_filesize'; break;
case 2: echo 'Rozmiar pliku przekroczyl wartosc max_file_size'; break;
case 3: echo 'Plik wyslany tylko czesciowo'; break;
case 4: echo 'Nie wyslano zadnego pliku'; break;
}
exit;
}

// jeszcze jedno sprawdzenie: czy plik ma prawidlowy typ MIME?

if ($userfile_type != 'image/jpeg')
{
echo 'Problem: plik nie zawiera obrazka typu jpeg';
exit;
}

// umieszczenie pliku w pozadanej lokalizacji
$lokalizacja = '../images/photo/'.$userfile_name;

// is_uploaded_file and move_uploaded_file dodane w wersji 4.0.3
if (is_uploaded_file($userfile))
{
if (!move_uploaded_file($userfile, $lokalizacja))
{
echo 'Problem: Plik nie moze byc skopiowany do katalogu';
exit;
}
}
else
{
echo 'Problem: mozliwy atak podczas wysylania pliku. Nazwa pliku: '.$userfile_name;
exit;
}


print 'Plik wyslany<br /><br />';

// pokazanie, co zostalo wyslane
// dodanie oferty do bazy
$photo_query = 'INSERT INTO FotoOferty VALUES (NULL,"'.$id.'","'.$userfile_name.'")';
$result_photo = mysql_query($photo_query) or die('Nie mozna dodac fotki do bazy : '.mysql_error());

print 'Podglad zawartosci wyslanego pliku:<br /><hr />';
print '<img src="../images/photo/'.$userfile_name.'">';
print '<br /><hr />';

};
?>


/////////////////////////
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Ive
post 18.11.2004, 18:21:12
Post #2





Grupa: Zarejestrowani
Postów: 352
Pomógł: 1
Dołączył: 17.07.2003
Skąd: Kazanów

Ostrzeżenie: (0%)
-----


wrzuc ten kod w tagi php zeby mozna bylo cos rozczytac z tego kodu...
Go to the top of the page
+Quote Post
ewuski
post 18.11.2004, 20:10:50
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 18.11.2004

Ostrzeżenie: (0%)
-----


Aha... sorka

  1. <?
  2. if($action=='photoedit') {
  3. ?>
  4.  
  5. <form action=\"<? print $PHP_SELF; ?>\" method=\"post\" enctype=\"multipart/form-data\">
  6. Maksymalny rozmiar pliku to 100 KB !<br/>
  7. Maksymalna szerokosc zdjecia to 500px.<br/>
  8. Plik : <input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"100000\">
  9. <input type=\"hidden\" name=\"id\" value=\"<? print $id; ?>\">
  10. <input type=\"hidden\" name=\"action\" value=\"photoadd\">
  11. <input type=\"file\" name=\"userfile\" size=\"50\">
  12. <input type=\"submit\" name=\"add\" value=\"Dodaj plik\">
  13. </form>
  14.  
  15. <?
  16. }else if($action==&#092;"photoadd\") {
  17. // $plikuzytkownika - miejsce tymczasowej lokalizacji pliku na serwerze WWW
  18. $userfile = $HTTP_POST_FILES['userfile']['tmp_name'];
  19.  
  20. // $plikuzytkownika_name - nazwa pliku w systemie uzytkownika
  21. $userfile_name = $HTTP_POST_FILES['userfile']['name'];
  22.  
  23. // $plikuzytkownika_size - wielkosc pliku w bajtach
  24. $userfile_size = $HTTP_POST_FILES['userfile']['size'];
  25.  
  26. // $plikuzytkownika_type - typ pliku w systemie MIME, np. image/gif
  27. $userfile_type = $HTTP_POST_FILES['userfile']['type'];
  28.  
  29. // $plikuzytkownika_error - kod bledu zwiazanego z wysylaniem pliku
  30. $userfile_error = $HTTP_POST_FILES['userfile']['error'];
  31.  
  32. $id = $_POST['id'];
  33.  
  34. if ($userfile_error > 0) {
  35. echo 'Problem: ';
  36. switch ($userfile_error) {
  37. case 1: echo 'Rozmiar pliku przekroczyl wartosc upload_max_filesize'; break;
  38. case 2: echo 'Rozmiar pliku przekroczyl wartosc max_file_size'; break;
  39. case 3: echo 'Plik wyslany tylko czesciowo'; break;
  40. case 4: echo 'Nie wyslano zadnego pliku'; break;
  41. }
  42. }
  43.  
  44. // jeszcze jedno sprawdzenie: czy plik ma prawidlowy typ MIME?
  45. if ($userfile_type != 'image/jpeg') {
  46. echo 'Problem: plik nie zawiera obrazka typu jpeg';
  47. }
  48.  
  49. // umieszczenie pliku w pozadanej lokalizacji
  50. $lokalizacja = '../images/photo/'.$userfile_name;
  51.  
  52. // is_uploaded_file and move_uploaded_file dodane w wersji 4.0.3
  53. if (is_uploaded_file($userfile)) {
  54. if (!move_uploaded_file($userfile, $lokalizacja)) {
  55. echo 'Problem: Plik nie moze byc skopiowany do katalogu';
  56. }
  57. }else{
  58. echo 'Problem: mozliwy atak podczas wysylania pliku. Nazwa pliku: '.$userfile_name;
  59. }
  60.  
  61.  
  62. print 'Plik wyslany<br /><br />';
  63.  
  64. // pokazanie, co zostalo wyslane
  65. // dodanie oferty do bazy
  66. $photo_query = 'INSERT INTO FotoOferty VALUES (NULL,\"'.$id.'\",\"'.$userfile_name.'\")';
  67. $result_photo = mysql_query($photo_query) or die('Nie mozna dodac fotki do bazy : '.mysql_error());
  68.  
  69. print 'Podglad zawartosci wyslanego pliku:<br /><hr />';
  70. print '<img src=\"../images/photo/'.$userfile_name.'\">';
  71. print '<br /><hr />';
  72.  
  73. };
  74. ?>
Go to the top of the page
+Quote Post
Gniewko
post 18.11.2004, 23:16:30
Post #4





Grupa: Zablokowani
Postów: 13
Pomógł: 0
Dołączył: 11.04.2004
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Nie bardzo rozumiem sprawy. U mnie na localu (po wykomentowaniu lini 71 i 72) wszystko działa bez problemów. Sprawdź strukture katalogów do których się odwołujesz, ewnt. prawa dla tych katalogów i skryptu który z nimi pracuje.

ps.
sprawdzane na Windzie XP Pro,
Apache 2.0.48, php 4.3.7
w Firefox 1.0
Go to the top of the page
+Quote Post
ewuski
post 19.11.2004, 20:16:55
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 18.11.2004

Ostrzeżenie: (0%)
-----


no właśnie, a u mnie nie działa... i też się dziwię.
Dodam, że inne pliki w tym samym katalogu, wyświetlane za pomocą tej samej pętli (a więc z tą samą ścieżką dostępu), ale przegrane poprzez FTP, wyświetlają się normalnie.

Nie wiem natomiast jak sprawdzić prawa do katalogów ? Korzystam z dzierżawionego serwera (Apache 1.3.33 na Unixie).
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 00:59