Przesylanie zdjec z formularza czyli uploaded folderu

Tutaj należy zgłaszać problemy z działaniem serwisu.

Przesylanie zdjec z formularza czyli uploaded folderu

Postprzez fellow » Pt mar 07, 08 12:46

Mam problem z przesylaniem zdjec z formularza. Chodzi o to, ze przesylam zdjecie z formularza do folderu i tam sie zapisuje, natomiast nazwe zdjecia do bazy mysql. wszystko ladnie dziala, ale po przejsciu znowu na strone gdzie zdjecie sie ma pojawic poprostu sie nie wyswietla. sprawdzalem poprzez ftp czy zdjecie sie zapisalo w folderze i jest. sprawdzilem atrybuty zdjecia i niestety brak odpowiednich atrybutow zdjecia do odczytu. po recznym ustawieniu atrybutow (we wlasciwosciach zdjecia) zdjecie sie juz wyswietla. hmm czym to jest spowodowane? testuje moje scrypty na xampp i wszystko dziala. korzystam php5 i smarty. Moze ugu.pl ma cos zablokowane by moc korzystac z formularza html, tpl czy innych do przesylania zdjec. Prosze o pomoc i jakies porady.
Ostatnio edytowano Śr kwi 23, 08 11:10 przez fellow, łącznie edytowano 1 raz
fellow
 
Posty: 5
Dołączył(a): Pt mar 07, 08 12:25

Postprzez azotor » Śr mar 26, 08 16:12

dodaj do skryptu po zapisywaniu pliku
Kod: Zaznacz cały
$path='download';
chmod($path."/".$plik, 0644);

to coś zmienia atrybut $plik to nazwa pliku
Avatar użytkownika
azotor
 
Posty: 180
Dołączył(a): Cz maja 10, 07 18:25
Lokalizacja: Kędzierzyn-Koźle

Postprzez peter13135 » N kwi 13, 08 12:42

heh mam ten sam problem i niemoge go rozwiazać
wygląda to tak
formularza niebede opisywal, opisze tylko plik php
include 'config.php'; //w pilku config jest scieżka skryptu($url) oraz folder uploadu ($folder)
$plik = $_FILES['plik'];
$random = rand(123,999999);
następnie jest skrypt zapisywania pliku którego podam tylko jedną linie
if ( ! @move_uploaded_file($plik['tmp_name'], $folder.'/'.$random. $plik['name']))
potem jest
$adres=$url. $folder. $random. $plik['name'];
następnie
chmod($adres, 777);
print $adres;

napisałem tylko najważniejsze częsci skryptu dodam że $url i $folder mają '/' na końcu

no i problem w tym że plikowi niesą nadawane chmody
peter13135
 
Posty: 8
Dołączył(a): Wt sty 01, 08 00:38

Postprzez wargo » Pn kwi 14, 08 15:07

Kompletnie zabałaganiłeś kod, niec nie potrafie odczytać.
wargo
 
Posty: 1352
Dołączył(a): Cz lip 05, 07 16:59
Lokalizacja: Pleszew

Postprzez fellow » N kwi 20, 08 11:01

Mimo wszystko nie moge sobie poradzic, zdradze wiec kawalek kodu moze ktos ma jakis pomysl. To jest kawalek funkcji odpowiadajacej za zapisanie lub aktualizacje zdjecia;
public function init()
{
// je¶li jest przesy³any rysunek ...
if (isset($_POST['Upload']))
{
// sprawdzenie, czy prawa dostêpu do folderu rysunków umozliwiaja zapis pliku
if (!is_writeable(SITE_ROOT . '/product_images/'))
{
echo "nie moge zapisac rysunku w tym folderze";
exit;
}
// wynik 0 oznacza poprawne przes³anie pierwszego pliku
if ($_FILES['Image1Upload']['error'] == 0)
{
// przeniesienie pliku z tymczasowego katalodu do folderu
// product_images za pomoca funkcji PHP move_uploaded_file
move_uploaded_file($_FILES['Image1Upload']['tmp_name'],
SITE_ROOT . '/product_images/' . ($_FILES['Image1Upload']['name']));
// uaktualnienie danych o produkcie w bazie danych
$this->mCatalog->SetPicture1($this->mProductId,
$_FILES['Image1Upload']['name']);
}
// wynik 0 oznacza poprawne przes³anie drugiego pliku
if ($_FILES['Image2Upload']['error'] == 0)
{
// przeniesienie przes³anego pliku do folderu product_images
move_uploaded_file($_FILES['Image2Upload']['tmp_name'],
SITE_ROOT . '/product_images/' . $_FILES['Image2Upload']['name']);
// uaktualnienie danych o produkcie w bazie danych
$this->mCatalog->SetPicture2($this->mProductId,
$_FILES['Image2Upload']['name']);
}
} [/code]
i teraz nie wiem gdzie wstawic atrybuty ...........!
fellow
 
Posty: 5
Dołączył(a): Pt mar 07, 08 12:25

Postprzez azotor » Śr kwi 23, 08 21:00

Macie działajacy skrypt uploadu zdjec jesli nie usunalem przypadkowo jakiejs linijki albo znacznika to powinno dzialac jak nie to piszcie na gg i podajcie swoj nick i w jakiej sprawie
Kod: Zaznacz cały
            if (!empty($_FILES['f'][name]))
            {
               //sprawdzanie formatu pliku
               if(($_FILES['f'][type]=="image/gif")||($_FILES['f'][type]=="image/jpg")||($_FILES['f'][type]=="image/jpeg"))
               {
                  //sprawdzanie rozmiaru pliku
                  if($_FILES['f'][size]<(1024*1000))
                  {
                     $iname='f';
                     $path='galeria';
                     global $HTTP_POST_FILES;
                     if(isset($HTTP_POST_FILES) && is_uploaded_file($HTTP_POST_FILES[$iname]["tmp_name"]))
                     {
                        $fname=$HTTP_POST_FILES[$iname]["name"];
                        if($_FILES['f'][type]=="image/gif")
                        {
                           move_uploaded_file($HTTP_POST_FILES[$iname]["tmp_name"],$path."/".$numer.".gif");
                           $plik=$numer.'.gif';
                        }
                        else if($_FILES['f'][type]=="image/jpg")
                        {
                           move_uploaded_file($HTTP_POST_FILES[$iname]["tmp_name"],$path."/".$numer.".jpg");
                           $plik=$numer.'.jpg';
                        }
                        else if($_FILES['f'][type]=="image/jpeg")
                        {
                           move_uploaded_file($HTTP_POST_FILES[$iname]["tmp_name"],$path."/".$numer.".jpeg");
                           $plik=$numer.'.jpeg';
                        }
                        chmod($path."/".$fname, 0644);

                        echo 'Obraz został przesłany.';
                     }
                  }
                  else
                  {
                     echo 'Wybrany plik ma za duży rozmiar.';
                  }
               }
               else
               {
                  echo 'Plik nie jest formatu GIF, JPEG ani JPG.';
               }
            }
            else
            {
               echo 'Nie wybrano pliku do wysłania.';
            }
         }
Avatar użytkownika
azotor
 
Posty: 180
Dołączył(a): Cz maja 10, 07 18:25
Lokalizacja: Kędzierzyn-Koźle

Postprzez fellow » Cz kwi 24, 08 11:06

Azotor dzieki tobie problem rozwiazalem, Brakowalo mi jeszcze nadanie atrybutow przesylanego zdjecia. Kod wyglada teraz tak:
Kod: Zaznacz cały
public function init()                                         
  {                                                             
    // je&para;li jest przesy³any rysunek produktu...
    if (isset($_POST['Upload']))                                 
    {                                                           
       // sprawdzenie, czy prawa dost&ecirc;pu do folderu rysunków produktów umo&iquest;liwiaj± zapis pliku
       if (!is_writeable(SITE_ROOT . '/product_images/'))       
       {                                                         
         echo "Can't write to the product_images folder";       
         exit;                                                   
       }                                                         
       // wynik 0 oznacza poprawne przes³anie pierwszego pliku
       if ($_FILES['Image1Upload']['error'] == 0)               
       {                                                     
         // przeniesienie pliku z tymczasowego katalodu do folderu
         // product_images za pomoc± funkcji PHP move_uploaded_file   
         move_uploaded_file($_FILES['Image1Upload']['tmp_name'],
           SITE_ROOT . '/product_images/' . $_FILES['Image1Upload']['name']);
chmod(SITE_ROOT . '/product_images/' . ($_FILES['Image1Upload']['name']), 0644);

         // uaktualnienie danych o produkcie w bazie danych
         $this->mCatalog->SetPicture1($this->mProductId,         
           $_FILES['Image1Upload']['name']);                     
       }                                                         
       // wynik 0 oznacza poprawne przes³anie drugiego pliku       
       if ($_FILES['Image2Upload']['error'] == 0)               
       {                                                         
         // przeniesienie przes³anego pliku do folderu product_images
         move_uploaded_file($_FILES['Image2Upload']['tmp_name'],
           SITE_ROOT . '/product_images/' . $_FILES['Image2Upload']['name']);
chmod(SITE_ROOT . '/product_images/' . ($_FILES['Image2Upload']['name']), 0644);

         // uaktualnienie danych o produkcie w bazie danych
         $this->mCatalog->SetPicture2($this->mProductId,         
           $_FILES['Image2Upload']['name']);                     
       }                                                         
    }       

i to wszystko wow.
fellow
 
Posty: 5
Dołączył(a): Pt mar 07, 08 12:25

Postprzez azotor » Pt kwi 25, 08 20:17

proszę w końcu od tego są fora
Avatar użytkownika
azotor
 
Posty: 180
Dołączył(a): Cz maja 10, 07 18:25
Lokalizacja: Kędzierzyn-Koźle


Powrót do UGU.PL

Copyright © 2007-2011 ugu.pl
Wszelkie prawa zastrzeżone.
Polityka prywatności