Stranice: [1]   Idi dole
  Štampaj  
Autor Tema: Upload fajlova  (Pročitano 1838 puta)
biksi
Gost
« poslato: Ponedeljak, 23. April 2001. 14:22:00 »

Imam skript koji bi trbao da uploaduje fajl sa klijenta na server sto u lokalu (na PWS + Windows) lepo radi ali na Web serveru javlja:

Unable to create 'imefalja.extenzija': Permission denied in bla, bla, bla...

Pretpostavljam da tu ima nesto oko prava pristupa, ali sta i kako ga resiti? Unapred hvala.
Sačuvana
acim
Administrator
Elitni član
*****
Van mreže Van mreže

Poruke: 1.604



Pogledaj profil WWW
« Odgovor #1 poslato: Ponedeljak, 23. April 2001. 16:38:00 »

Tacno tako, ali nisi napisao koji je server u pitanju, da li je to UNIX/Linux server? Ukoliko jeste, potrebno je da korisnik koji izvrsava Web server, najverovatnije nobody ili njegova grupu budu vlasnik direktorijuma u koji se vrsi upload. Predlazem sledece resenje. Recimo da je vlasnik fajlova biksi:

chown biksi.nobody ime_direktorijuma
chmod 770 ime_direktorijuma

Ovo je bilo resenje sa grupom, a moguce je i resenje da vlasnik bude korisnik nobody, sto mi se manje svidja:

chown nobody ime_direktorijuma
chmod 755 ime_direktorijuma

Na kraju, nije potrebno menjati vlasnika vec samo privilegije:

chmod 777 ime_direktorijuma

ali je ovo ubedljivo najlosije resenje.
Sačuvana

Boban Aćimović, urednik linux.rs
mita
Gost
« Odgovor #2 poslato: Petak, 01. Jun 2001. 01:01:00 »

Ako hoces da upload radis sa html strane, gde ce korisnik da selektuje koji fajl uploaduje sa svog racunara, napravi form koji ce imati nesto nalik na

<input type="text" name="ImeFajla" value="<?php echo $ImeFajla ?>" size="50" readonly style="background:lightgray; font-style=italic"><br>
<input type="file" name="ImeFajlaFile" size="50">

a onda u diru gde ti se nalazi PHP script napravi shell
script sa imenom copyUpload (naravno, executable)

#!/bin/bash
cp $1 $2

Takodje, napravi dir gde ces da trpas uploadovane fajlove,
kod mene je to "../images/files/"

u svom scriptu stavi ovaj function:

function UploadFile ($file, $remote, $name) {
   $remoteFile = explode(".",$remote);
   $fileType = $remoteFile[1];
   $path = $name . "." .  $fileType;

   $saved='';
   if ($file!='none') {
      $path = "../images/files/" . $path; // uploaded file goes here
      if (!(is_dir(dirname($path)))) {   // ako dir ne postoji, kreiraj
         mkdir(dirname($path), 0700);
      }
      if (is_uploaded_file($file)) {
         system("./copyUpload $file $path");
         $saved = $path;
      } else {
         echo "Possible file upload attack: filename '$file'.";
       }
   }
   return $saved;  
} // End of UploadFile


Ovu funkciju pozivas ovako:

$str = UploadFile($ImeFajlaFile, $HTTP_POST_FILES["ImeFajlaFile"][name], "ImeFajlaFile");


Nadam se da ce pomoci.
Sačuvana
Stranice: [1]   Idi gore
  Štampaj  
 
Prebaci se na:  

?>