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:
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
?>
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
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro