Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Brisanje fajlova sa UNLINK funkcijom

[es] :: PHP :: Brisanje fajlova sa UNLINK funkcijom

Strane: 1 2

[ Pregleda: 4512 | Odgovora: 35 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.dynamic.isp.telekom.rs.



+3 Profil

icon Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 10:15 - pre 84 meseci
Pravim web sajt za trgovinu bla,bla, bla...

OPIS:
U direktorijumu imam vise slika koje sam nakon upload sa ajaxForm $_FILES['slika']['tmp_name'] preimenovao u "s1.jpg, s2.jpg,s3.jpg,s4.jpg....itd".
fajlove imenujem tako sto karakteru "s" dodeljujem broj na kraju tako sto prebrojim ukupan broj fajlova u folderu sa ekstenzijom .JPG i inkrementujem taj broj za jedan tj $++. Na taj nacin dobijam naziv fajla s1.jpg, s2.jpg itd.

Sta je osnovni problem:

Nakon brisanja fajla , recimo s4.jpg u folderu, koristeci UNLINK funkciju fajl nestaje iz foldera ali se ponavljanjem prethodnog procesa tj uploada(gore u opisu)
preborjava folder i sada se novom fajlu (slici) dodejuje isti naziv kao kod prethodno obrisanog fajla. Rezultat ovog je ponovno vracanje ISTE, POTPUNO iste slike koju sam prethodno OBRISAO. Znaci nije mi OBRISAO PRETHODNU SLIKU NAKON UPLOADA NOVE SLIKE, VRATIO MI JE PRETHODNO OBRISANU.






 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1918
..106.109.adsl.dyn.beotel.net.

Sajt: stackoverflow.com/users/1..


+472 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 10:42 - pre 84 meseci
Da li si probao da obrišeš keš ili da staviš

Code:
Cache-Control: no-cache, must-revalidate


i datum u prošlosti za Expires polje u headeru?
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 10:59 - pre 84 meseci
kod brisanja koristim

Code:

     $.post('stranica.php',
              
                 sifra: '1234567'

   
        ,function(data){
            alert(data);
     });



Koristim dve metode . Jednu post za brisanje a drugu tj za slanje ajaxForm>post method..

u post methodi je cache opcija po default FALSE.....

ili mislis da to stavim kad uplodujem u: HEADER te stranice sa koje brisem ili forme, ajaxForme. Gde???
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 2838



+1156 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 11:00 - pre 84 meseci
unlink radi, tvoj program ne radi. Možemo samo da ti ponudimo razumevanje i rame za plakanje, pošto nisi stavio primer kojim demonstriraš tu jedinstvenu pojavu specifičnu za tvoj program...
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 11:26 - pre 84 meseci
Obrazac pravim dinamcki iz JavaScripta
Code:

  function dodajSliku(){
           var sifra=$("#det_osn_pod_art_pre ul #sifra_artikla").text();
           var dezen=$("#det_osn_pod_art_pre ul #oznaka_dezena").text();
           
           var sre_sif=srediSifru(sifra + "-" + dezen);
           
              
           $(".dialog3").dialog().text('');
          
           $(".dialog3").append("<form id=\"frmSlanje\" enctype=\"multipart/form-data\" method=\"post\" action=\"php_adm/uploadSlike_prepravi.php\" ><input         type=\"file\"  id=\"slika\" name=\"slika\" onchange=\"slanjeSlike()\"/><input type=\"hidden\" name=\"sifraup\" value=\"" + sre_sif + "\"/></form>");
           
           $("#kom_sli div").remove();
       
           $("#dod_pre_sli").fadeOut('slow');
       
      
       
   }





Slanje slike ajaxForm

Code:

 function slanjeSlike(){
    
     var sifra=$("#sifra_artikla").text();
     var ozn_dez=$("#oznaka_dezena").text();
     var sif_art=srediSifru(sifra+ "-" + ozn_dez);
      //alert(sif_art);target: ".dialog3",
      
    
    $(".dialog3").append("<img src=\"../loading/loading20.gif\" alt=\"Saljem sliku....\"/>");
    $("#frmSlanje").ajaxForm({
         
         target: ".dialog3",
         success: function(){
            $(".dialog3").on("dialogclose",function(){
               
                $("frmSlanje").remove();
                $("#det_sli_art ul").append($(".dialog3").html());
                $(".dialog3").text('');
            });
        
             $("#kom_sli").append("<div id=\"dod_pre_sli\" onclick=\"dodajSliku();\">Dodaj sliku</div>");
           
          
         }
    }).submit();


Brisanje slike..

Code:

  function obrisiSliku(elem){ 
       
       var slika=$(elem).prev().attr('src');
       var up=confirm("Jeste li sigurni u brisanje slike artikla\n >" + slika);//alert(sifra);
       
       if(up===false){
           alert('Ok, necu brisati!');
       }
       else{
       
            $.post("php_adm/brisiSeleSliku.php",{
                  
                del_sli: slika

            },function(){
            
                    $(elem).parent().fadeOut('slow',function(){$(this).remove();});
             
            });
       }
   }


server strana PHP..

Code:


  //odredjivanje putanje tj direktorijuma.
  $destination_path = "../../artikli".DIRECTORY_SEPARATOR.$_POST['sifraup']."/";
 
  //ukupan broj fajlova i inkrementiranje za 1
  $ukuFaj=  brojFaj($destination_path)+1;
  
  //funkcija za proveru velicine fjla.   >>>> ($_FILES['slika']['size']/1024) a 80 je u KB...
  DOZ_VEL_FAJ($_FILES['slika']['size'], 80);
   
  //Novo ime fajla. Preimenovanje fajla je moja funkcija gde preimenujem....
   $novoime="../../artikli/" . $_POST['sifraup'] . "/" . preimenovanjeFajla($_FILES['slika']['name'], 's'. $ukuFaj);

   //relativna putanja za pregled u HTML ..nebitno za ovo
   $prew="../artikli/" . $_POST['sifraup'] . "/" . preimenovanjeFajla($_FILES['slika']['name'], 's'. $ukuFaj);
   $result = 0;
 
  
   if(is_uploaded_file($_FILES['slika']['tmp_name'])){
     
     
        if(@move_uploaded_file($_FILES['slika']['tmp_name'], $novoime)) {
              $result = 1;
      
        }
   
   if($result==1){
      
         echo "<li><img src=\"". $prew . "\"/> <img src=\"../ikone/Black/080 Trash.png\" title=\"Obriši\"  onclick=\"obrisiSliku(this)\"/></li>"; 
       
   }
  
   
 }
   sleep(1);
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 11:34 - pre 84 meseci
Citat:
borcha:

Nakon brisanja fajla , recimo s4.jpg u folderu, koristeci UNLINK funkciju fajl nestaje iz foldera ali se ponavljanjem prethodnog procesa tj uploada(gore u opisu)
preborjava folder i sada se novom fajlu (slici) dodejuje isti naziv kao kod prethodno obrisanog fajla. Rezultat ovog je ponovno vracanje ISTE, POTPUNO iste slike koju sam prethodno OBRISAO. Znaci nije mi OBRISAO PRETHODNU SLIKU NAKON UPLOADA NOVE SLIKE, VRATIO MI JE PRETHODNO OBRISANU.







ako smo se razumeli...??
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 11:40 - pre 84 meseci
Znaci jos jednom:

Brisem sliku pod nazivom s4.jpg. Zatim zelim postaviti drugu sliiku tj zameniti prethodnom. Nova slika sada dobija ISTI naziv kao prethodno obrisana s4.jpg.

rezultat:
Vraca staru sliku tj prethodno obrisanu. Nije druga koju sam zeleo...

 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1918
..106.109.adsl.dyn.beotel.net.

Sajt: stackoverflow.com/users/1..


+472 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 11:42 - pre 84 meseci
Otvori u drugom browseru ili skini s4.jpg (s)FTPom i pogledaj da li je to originalna ili nova slika, za početak.

Onda možeš napraviti PHP skriptu koja će da šalje slike browseru, postavljajući header kakav sam naveo, ili
ukoliko koristiš Apache, u htaccess stavi sledeće:

Code:

<filesMatch "\.(jpg)$">
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</ifModule>
</filesMatch>


Naravno, valjalo bi ovo samo da postoji u direktorijumu sa slikama, da ne bi izgubio keširanje za sve slike.

Ili promeni filesMatch i imena fajlova slika da pokriješ samo željene slike.
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 12:02 - pre 84 meseci
Ovo je nesto neverovatno..probao u svim pretrazivacima.

u netBeansu radim i koristim njegov FTP . Znaci brisem fajl u browseru istog momenta otvaram netBeans i gledam u fajl exploreru kako nestaje fajl s4.jpg. Zatim pokusam ponovo upload POTPUNO NOVU SLIKU ALI pod ISTIM nazivom s4.jpg..ON VRACA PRETHODNU KOJA JE BILA POD TIM ISTIM NAZIVOM...

ok, valjda ce se nesto pojaviti kao ideja STA JE OVO!
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 12:04 - pre 84 meseci
Citat:
Burgos:
Otvori u drugom browseru ili skini s4.jpg (s)FTPom i pogledaj da li je to originalna ili nova slika, za početak.

Onda možeš napraviti PHP skriptu koja će da šalje slike browseru, postavljajući header kakav sam naveo, ili
ukoliko koristiš Apache, u htaccess stavi sledeće:

Code:

<filesMatch "\.(jpg)$">
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</ifModule>
</filesMatch>


Naravno, valjalo bi ovo samo da postoji u direktorijumu sa slikama, da ne bi izgubio keširanje za sve slike.

Ili promeni filesMatch i imena fajlova slika da pokriješ samo željene slike.


a nisam video ovu poruku.. PROBAT CU :)
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 12:16 - pre 84 meseci
probao

koristim XAMPP serv.. ali ok u njemu je apche>.htacess .

stavio sam sadrzaj ali ispod DEFAULT PODESAVANJA

RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php



da li to prvo da uklonim?
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 12:20 - pre 84 meseci
Probao i nece....

 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 2838



+1156 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 12:44 - pre 84 meseci
Verovatno je u pitanju tipična početnička greška: Imaš dva kataloga, "dir1" i "dir2". Sliku s4.jpg brišeš u dir1 a na HTML-u prikazuješ iz dir2.

Koliko vidim iz tvog zbrkanog koda, imaš:

//relativna putanja za pregled u HTML ..nebitno za ovo
$prew="../artikli/" . $_POST['sifraup'] . "/" . preimenovanjeFajla($_FILES['slika']['name'], 's'. $ukuFaj);

ali i

//odredjivanje putanje tj direktorijuma.
$destination_path = "../../artikli".DIRECTORY_SEPARATOR.$_POST['sifraup']."/";

Odnosno direktorijume ../artikli/sifraup i ../../artikli/sifraup

A i ideja da slike dobijaju naziv ukupna broj jpgova + 1 ne valja: šta ako imaš s1 do s4, obrišeš s3, pa onda sledeci upload pregazi s4, a s3 ostane prazno...
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 13:03 - pre 84 meseci
Jao, jaooo !!! Sujeto , sujeto

Druze moj nisi ti razumeo nista od onoga sto sam ja napisao. Ali ok...

NIJE pocetnicka greska u pitanju i nemoj zuriti sa takvim zakljucima.

folder ili dir1 ili dir2 su kod mene sifre artikla. Folderi su imenovani po siframa. Svaki napravljen folder je u stvari jedna sifra artikla. U svakom od tih foldera se nalaze slike (sl.1,sl.3,sl.3) za taj artikal, koje su i problem ovde i jos par .txt fajlova , opis tog artikla, i komentari na taj artikal .

primer dva foldera:
PRVI ARTIKAL>>
../artikli/
167988-2/
-opis_167988-2.txt
-komentar_167988-2.txt
-s1.jpg
-s2.jpg
-s3.jpg
-s4.jpg
-s5.jpg

DRUGI ARTKAL>>>
../artikli/
120300/
-opis_120300.txt
-komentar_120300.txt
-s1.jpg
-s2.jpg
-s3.jpg
-s4.jpg
-s5.jpg


evo primera jednog foldera u kome se nalaze fajlovi.

recimo:



../artikli/167988-2/sl1.JPG
../artikli/167988-2/sl2.JPG
../artikli/167988-2/sl3.JPG


Nadam se da je sad malo jasnija gradja mog file systema???

E sada ..kada obrisem sve fajlove i zelim potpuno nove slike za datu sifru artikla pod istim nazivima s1,s2,s3,s4. VRACA ISTE, PRETHODNO OBRISANE.

Znaci kao da nisu prepisane preko starih slika. Nesto kao kada radis copy preko vec postojeceg fajla i ondak potvrdis da neces da je prepises. To se ovde desava. A sama funkcija sa imenom UNLINK a ne DELETE mi je sumljiva tj. da li ona uopste vrsi apsolutno brisanje ili to radi neka druga funkcija...

[Ovu poruku je menjao borcha dana 19.06.2013. u 14:15 GMT+1]

[Ovu poruku je menjao borcha dana 19.06.2013. u 14:15 GMT+1]

[Ovu poruku je menjao borcha dana 19.06.2013. u 14:16 GMT+1]
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 13:08 - pre 84 meseci
Citat:
djoka_l:
Verovatno je u pitanju tipična početnička greška: Imaš dva kataloga, "dir1" i "dir2". Sliku s4.jpg brišeš u dir1 a na HTML-u prikazuješ iz dir2.

Koliko vidim iz tvog zbrkanog koda, imaš:

//relativna putanja za pregled u HTML ..nebitno za ovo
$prew="../artikli/" . $_POST['sifraup'] . "/" . preimenovanjeFajla($_FILES['slika']['name'], 's'. $ukuFaj);

ali i

//odredjivanje putanje tj direktorijuma.
$destination_path = "../../artikli".DIRECTORY_SEPARATOR.$_POST['sifraup']."/";

Odnosno direktorijume ../artikli/sifraup i ../../artikli/sifraup

A i ideja da slike dobijaju naziv ukupna broj jpgova + 1 ne valja: šta ako imaš s1 do s4, obrišeš s3, pa onda sledeci upload pregazi s4, a s3 ostane prazno...


Ako si pogledao komentar na kod sa varijablom $prew=...... to nije znacajno za ovaj problem .Tu je samo kako bi vratio Path do Html kako bi prikazao sta je i koja je slika uploadovana... znaci nema veze sa problemom. :)
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 2838



+1156 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 13:16 - pre 84 meseci
Ajde mi objasni ovo:

$destination_path = "../../artikli".DIRECTORY_SEPARATOR.$_POST['sifraup']."/";

Koliko vidim, a to sam iskopirao direktno iz tvog koda, piše
DIRECTORY_SEPARATOR
a ne
$DIRECTORY_SEPARATOR

Pa se slika smešta u
../artikli167988-2/
a ne u
../artikli/167988-2/

Ispiši ime fajla koji se generiše, čisto da budeš siguran da dobijaš baš ime fajla koje treba...
Šta ako je DIRECTORY_SEPARATOR pogrešno definisan?

Uzgred, unlink je sistemski poziv na UNIX sistemima koji briše fajl (da ne ulazimo previše u suštinu, ali brisanje na Unixu je brisanje linkova) i zbog toga se funkcija zove unlink u php. Ne postoji funkcija delete koja radi isti posao, pa bi bilo dobro da ponovo pregledaš svoj kod - ne greši unlink nego ti. Takođe je moguće da se ti prvi, od nekoliko miliona php prgramera, prvi primetio bug, ali je to malo verovatno.
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 13:26 - pre 84 meseci
Znas li ti sta je uopste DIRECTORY_SEPARATOR???


to ti je druze isto ako i "/" to je KONSTANTA u php kao resenje visesistemskog rada sa fajlovima-standardizacija file systema.

I oped si promasio problem vec se skoncentrises na moj nivo znanja a ne problem.

Kazem ti ne zuri sa procenom koliko ja znam ili ne. Ako mozes pomozi, ako ne nemoj mi uzimati vreme...
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 2838



+1156 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 13:28 - pre 84 meseci
Našao sam i ovo an stack overflow
What DIRECTORY_SEPARATOR do?

DIRECTORY_SEPARATOR equals to "/" (Unix) or "\" (Windows) depending on the platform.

Why above case is false with DIRECTORY_SEPARATOR?

Because in double-quoted strings "\123" translates to "Q" (more details in PHP Manual).

When construction Windows paths, you should escape backslash: "C:\\1212.txt" or use single-quoted strings: 'C:\1212.txt'.

Even better and cleaner way would be to use Unix directory separator "/" hard-coded directly in path string (without any constants), it works just fine under Windows: "C:/1212.txt".

Dakle na Win sistemima, ako je DIRECTORY_SEPARATOR posatvljen na "\", pa pnda varijablu upotrebiš u double quoted stringu, dobiješ umesto separatora specijalni karakter...
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2240
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2244 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 13:33 - pre 84 meseci
@borcha

Ajd' i ja malo da se umešam, znaš li ti npr. šta je to __DIR__ .. pa onda malo explode() .. itd.. ?

Mene je prosto strah/gadan osećaj (figurativno) kada vidim ../../ da se koristi negde (bilo gde) gde je pretraživač po defaultu - ćorav ili gde po defaultu treba da bude ćorav.

Dabome, govorim o načinu na koji je sklepan taj kod gore...

Okle tebi ta praksa za jako "uredno definisanje" putanji ?
about:networking
 
Odgovor na temu

borcha
Boris Bokan
;-(
Novi Sad

Član broj: 148976
Poruke: 419
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: Brisanje fajlova sa UNLINK funkcijom19.06.2013. u 13:33 - pre 84 meseci
10000 put nije to problem...

Kada obrisem i sliku, odmah se prebacujem netBeans file explorer i pratim LIVE -posmatram brisanje i nestajanje i poslednjeg fajla u folderu. Kada uploadujem novi fajl , ZNACI potpuno novu sliku ALI POD ISTIM IMENOM, vraca se stari faj tj sadrzaj...

NE znam kako vise da ti objasnim..... trudim se! ;)
 
Odgovor na temu

[es] :: PHP :: Brisanje fajlova sa UNLINK funkcijom

Strane: 1 2

[ Pregleda: 4512 | Odgovora: 35 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.