http://alpha-thema-online.uv.ro
Fa-ti si tu propriul forum, pe www.myforum.ro!
Pagina de start a forumului http://alpha-thema-online.uv.ro Autentificare Inregistrare FAQ Membri Cautare

Pagina de start a forumului http://alpha-thema-online.uv.ro » Web development » Cum se face un upload pe server PHP
Creaza un subiect nou  Raspunde la subiect Subiectul anterior :: Subiectul urmator 
Cum se face un upload pe server PHP
MesajTrimis: 19/07/2007 17:07 Raspunde cu citat (quote)
Ad_Infinitum
Administrator
Administrator
Ad_Infinitum
Data inscrierii: 23/Iun/2007
Mesaje: 212




Va prezint mai jos cum puteti face un upload de fisiere pe server prin intermediul unui formular. Scriptul de mai jos este doar pentru exercitiu, nu se prezinta metode de verificare a tipului de fisier sau verificare a marimii maxime a fisierului sau alte verificari. Acest obiect este doar pentru studiu, pentru a va face o idee despre cum se transera un fisier.
Prima data se creaza formularul html pentru upload:
Citat:


<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="form1">
<input name="fisier" type="file" id="fisier">
<br>
<input name="trimit" type="submit" id="trimit" value="Submit">
</form>



Observati ca la action am pus PHP_SELF pentru a se reintoarce in aceeasi pagina dupa apasarea butonului de submit. In continuare avem urmatorul script:

Citat:


<?php
// daca se trimite ceva de la formular
if (isset($_POST['trimit']))
{
// se preia fisierul trimis
$fisier_nume = $_FILES['fisier']['name'];
$fisier_tip = $_FILES['fisier']['type'];
$fisier_nume_temp = $_FILES['fisier']['tmp_name'];
$fisier_eroare = $_FILES['fisier']['error'];
$fisier_marime = $_FILES['fisier']['size'];
// se afiseaza ce a fost primit
echo "<br>nume fisier primit: ".$fisier_nume;
echo "<br>tipul fisierului: ".$fisier_tip;
echo "<br>nume temporar: ".$fisier_nume_temp;
echo "<br>eroarea primita: ".$fisier_eroare;
echo "<br>marime fisier bytes: ".$fisier_marime;
//noul nume al fisierului atentie nu are extensie
// extensia ori o aflati din $fisier_tip ori o parsati din $fisier_nume
$nume_nou = date("YdmHis", time());
// carea unde se va pune fisierul
$cale_upload = "upload/"; // atentie directorul trebuie sa aiba CHMOD setat corespunzator
// cale si nume nou
// in cazul in care nu doriti sa se salveze cu un nume nou puneti in loc de $nume_nou - $fisier_nume
// atentie ar trebui sa verificati inainte daca nu exista alt fisier cu acelasi nume altfel va fi suprascris.
$fis_nou = $cale_upload.$nume_nou;
// se verifica daca a fost uploadat
if (is_uploaded_file($fisier_nume_temp))
{
// se verifica daca transferul a fost facut cu noul nume
if (move_uploaded_file($fisier_nume_temp, $fis_nou))
{
echo "<br>fisierul a fost uploadat cu numele ".$nume_nou;
}
else
{
echo "<br> eroare la [url]mutare[/url]";
}
}
else
{
echo "<br>eroare la transfer";
}
}
?>



Baniesc ca o sa va intrebati cum puteti pune extensia originala la fisierul salvat pe server. Una din solutii ar fi sa parsati numele original al fisierului si sa adaugati extensia la noul nume. Exemplu:

Citat:

<?php
// presupunand ca fisierul nu mai are alte puncte, ultimul punct desparte numele de extensie
$parsare = explode(".", $fisier_nume);
$fisier_extensie = $parsare[1];
// fisierul nou cu extensia originala va fi
$nume_nou = date("YdmHis", time()).".".$fisier_extensie;
// observati ca am pus la loc punctul care desparte numele de extensie
?>




Articol trimis de Birkoff
Vezi profilul utilizatorului Trimite mesaj privat

Cum se face un upload pe server PHP
 Pagina de start a forumului http://alpha-thema-online.uv.ro » Web development
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum
Ora este GMT + 3 ore  
Pagina 1 din 1  

  
  
 Creaza un subiect nou  Raspunde la subiect  


Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro
    Powered by phpBB © 2001-2004 phpBB Group. phpBB Skin by Vjacheslav Trushkin.