Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] problem z fread();
murdock
post 7.04.2007, 23:35:25
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 16.11.2006

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


czesc all

mam taki kod

  1. <?php
  2. $fhandle = fopen($HTTP_POST_FILES['zdjecie']['tmp_name'], "r");
  3. $content = addslashes(fread($fhandle, $HTTP_POST_FILES ['zdjecie']['size']));
  4.  
  5.  
  6. fclose($fhandle);
  7. ?>


i wyskakuja mi 2 ostrzezenia :

Warning: fread(): supplied argument is not a valid stream resource in ...
Warning: fclose(): supplied argument is not a valid stream resource in ...

Jak sie moge ich pozbyc questionmark.gif oczywiscie zdjecie jest typu bloob i wczytywane jest z formularza z bazy danych

----------------------
do wstawiania kodu php służy odpowiedni
tag.
---
~strife
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
devnul
post 8.04.2007, 00:19:55
Post #2





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


coś chyba pomieszałeś - fopen słuzy do otwierania plików zapisanych na dysku a z tego co widac to odwołujesz się do plikó które nie istnieją - z tąd te błędy


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
murdock
post 8.04.2007, 08:16:26
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 16.11.2006

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


robilem tak samo jak w tym artykule i nie dziala "przyklad "

Ten post edytował murdock 8.04.2007, 08:17:03
Go to the top of the page
+Quote Post
rojmarek
post 8.04.2007, 08:50:04
Post #4





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 10.09.2005

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


Cytat(murdock @ 8.04.2007, 07:16:26 ) *
robilem tak samo jak w tym artykule i nie dziala "przyklad "

nie powinno sie trzymac zdjęć w bazie... to przeczy założeniom bazy...
Go to the top of the page
+Quote Post
devnul
post 8.04.2007, 10:29:23
Post #5





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


Cytat
nie powinno sie trzymac zdjęć w bazie... to przeczy założeniom bazy...
że co prosze? jakie założenia bazy mówiąt o tym że plików /zdjęc i w niej trzymać nie wolno? kolega poprostu źle podchodzi do ich wyświetlania. bo jeśli trzyma je w bazie to wystarczy pobrać dane z bazy do zmiennej wypluć odpowiedni nagłowek (content-type:image/jpeg - albo inny w zależności od formatu zdjęcia) i wypluć zawartość zmiennej przez echo - ew zapisac do pliku - ale wtedy to faktycznie mija sie z celem

/edit:
@murdock: zapoznałęm sie z przykłądem podamym przez Ciebie i stwierdzam ze nie umiesz opisać problemu ty chcesz zdjęcie zapisac do bazy a nie je z tamtąd odczytać jak mniemam - przykład jest podany bardzo fajnie z wyjasnieniem wszystkiego także nie wiem w czym problem - robisz cos nie tak albo wprowadziłeś jakies modyfikacji - prawdopodobnie nie wysyłasz pliku albo masz źle ustawione parametry formularza - pamiętaj że powinno być to tak (zawsze):
  1. <FORM ACTION="upload.php" METHOD="POST" ENCTYPE="multipart/form-data">

zmienić tu się może tylko pole action - jeśli wszystko zrobiłeś jak w opisanym przykładzie to nie powinieneś mieć problemu ( o ile oczywiscie wysyłasz jakiś plik przez formularz na stronie)

Ten post edytował devnul 8.04.2007, 10:35:46


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
murdock
post 8.04.2007, 12:46:41
Post #6





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 16.11.2006

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


@devnul : zrobilem to jeszcze raz i dodawanie juz dziala , nie mam pojecia czemu mi wczesniej nie chodzilo sad.gif , jeszce mam jedno pytanie : jak nie dodam zdjecia w formularzu to wyskakuja mi te same bledy o ktorych mowa wczesniej , jest moze jakas funkcja sprawdzajaca czy dodano zdjecie questionmark.gif np jak chce sprawdzic czy wpisano imie to robie tak :

Kod
global $database, $form;
         /* sprawdzamy imie */
         $field = "imie";
         if(!eregi ("^(A-za-z])+$",$subimie)){$form->setError($field, "* To nie jest litera");}
         if(!$subimie || strlen($subimie = trim($subimie)) == 0){
         $form->setError($field, "* Nie podano imienia");


oczywiscie to jest czesc kodu podanego jako przyklad.

Ten post edytował murdock 8.04.2007, 12:48:00
Go to the top of the page
+Quote Post
devnul
post 8.04.2007, 13:07:10
Post #7





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


  1. <?php
  2. if ($HTTP_POST_FILES['zdjecie']['error']==0){
  3. //wgrano zdjęcie
  4. } else {
  5. //cośnie tak
  6. }
  7. ?>


możesz też poprostu sprawdzać czy plik istnieje

Ten post edytował devnul 8.04.2007, 13:08:30


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
murdock
post 8.04.2007, 13:39:24
Post #8





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 16.11.2006

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


ja pierd... znowu mam te komunikaty ale pojawiaja sie wtedy jak nie wybiore zdjecia w polu input "file". Wszystko sie dodaje do bazy wiec problem jest tylko z tymi komunikatami . Chce sei tego pozbyc bo jak robie obluge bledow i nie dodam wlasnie zdjecia to wystakuja mi te bledy co jest bardzo wkurzajace, podam kod jak to robilem bo nie mam pojecia co jest zle :

tworze sobie baze danych :

Kod
CREATE TABLE zaklady (
id int(2) NOT NULL,
nazwa_zakladu char (100) NOT NULL,
imie char (100) NOT NULL,
stanowisko char (100) NOT NULL,
zdjecie BLOB,
PRIMARY KEY(id)

);


tworze sobie formularz :


<?php
<FORM ACTION="upload.php" METHOD="POST" ENCTYPE="multipart/form-data">
Id:<br>
<INPUT TYPE="text" NAME="id" maxlength="60"><br>
Nazwa_zakladu:<br>
<INPUT TYPE="text" NAME="nazwa_zakladu" maxlength="60"><br>
Imie:<br>
<INPUT TYPE="text" NAME="imie" maxlength="60">
Stanowisko:<br>
<INPUT TYPE="text" NAME="stanowisko" maxlength="60"><br>
Zdjęcie:<br>
<INPUT TYPE="file" NAME="zdjecie" maxlength="60"><br>
<input type="hidden" name="subzaklady" value="1">
<input type="submit"  value="Dodaj zaklady">
</form>
?>


plik upload.php



<?php


include("include/session.php");


$fhandle = fopen($HTTP_POST_FILES['zdjecie']['tmp_name'], "rb");
$content = addslashes(fread($fhandle, $HTTP_POST_FILES['zdjecie']['size']));
fclose($fhandle);

     if(isset($_POST['subzaklady']))
     {   dodajz();
     }

     function dodajz()
     {
         global $form;
          
         $retval = dodajzaklaady($_POST['id'], $_POST['nazwa_zakladu'],$_POST['imie'],$_POST['stanowisko'],$content);     //pobieramy dane z formularza za pomoca POST

            /* dodano */
         if($retval == 0){
         header("Location: adminzaklady.php");
         }
         /* blad przy wpisie */
         else if($retval == 1){                                   //tablica sesji przechowujacej wartosci
         $_SESSION['value_array'] = $_POST;
         $_SESSION['error_array'] = $form->getErrorArray();
         header("Location: adminzaklady.php?page=add");  //tablica sesji przechowujacej bledy

         }
     }




     function dodajzaklaady($subid, $subnazwa,$subimie,$substanowisko,$content)
     {
         global $database, $form;
         /* sprawdzamy tytul */
         $field = "imie";
         if(!eregi ("^(A-za-z])+$",$subimie)){$form->setError($field, "* To nie jest litera");}
         if(!$subimie || strlen($subimie = trim($subimie)) == 0){
         $form->setError($field, "* Nie podano imienia");
          }
                          
      if($form->num_errors > 0) {
         return 1;
      }  else {
         $q ="insert into zaklady ( id,nazwa_zakladu,imie ,stanowisko,zdjecie ) values('$subid','$subnazwa','$subimie','$substanowisko','$content')";
         $zapytanie =  mysql_query($q);

         return 0;  // ok
         }

    }






?>


Ten post edytował murdock 8.04.2007, 13:41:55
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 - 01:51