Publishing System Settings Logout Login Register
Simple Upload Script
TutorialCommentsThe AuthorReport Tutorial
Tutorial Avatar
Rating
Add to Favorites
Posted on June 8th, 2010
1447 views
PHP Coding

Ce sunt formularele Html?
Formularele reprezinta o metoda de interactivitate cu utilizatorii unei pagini web. Prin intermediul unui formular se pot obtine date importante de la vizitatorii paginii. Pentru a defini un formular este nevoie ca acesta sa fie incadrat de instructiunile <form> si </form>. Instructiunea <form> are 2 atribute foarte importante: ACTION si METHOD. Cu ajutorul atributului ACTION ii spunem browser-ului ce se va intampla cu datele introduse in formular. Dupa ce formularul a fost completat, utilizatorul apasa un buton de trimitere, apoi datele vor fi procesate cu ajutorul unui limbaj de programare. Atributul METHOD, asa cum ii spune si numele, precizeaza metoda de trimitere a datelor si poate avea doua valori. Valoarea implicita a acestui atribut este GET, cu ajutorul acestei metode putand fi trimise cantitati mici de date, cea mai folosita metoda fiind POST.

<form action="upload.php" method="post" 
enctype="multipart/form-data">
<input type="file" name="userfile" id="file"> <br />
<input type="submit" value="Upload" class="buton"/>
</form>

In continuare fisierul 'upload.php'. Permitem utilizatorului sa uploadeze doar imagini jpg, gif, bmp si png (celelalte tipuri de fisiere, posibil malitioase, cum ar fi fisiere executabile, fisiere .php, fisiere .js nu pot fi urcate). Cu ajutorul functiei substr() delimitam portiunea din fisier de care avem nevoie. Aceasta portiune este definita de inceputul strpos() si lungimea strlen() parametrului.

Un mic exemplu pentru a intalege mai bine cum functioneza codul:

<?php
$filename = "poza.bmp"; //Numele fisierului.
$ext = substr($filename, strpos($filename,'.'), 
strlen($filename)-1); //Aflam extensia fisierului.
echo "$ext";
?>

Rezultat:
Extenstia fisierului este: .bmp

<?php
/* 
Titlu: Simple Upload
Autor: Mozzartut
Website: http://mozzartut.isgreat.org/simple-upload.php
*/

//Fisiere suportate (de ex. jpg/gif/bmp/png)
$allowed_filetypes = array('.jpg','.gif','.bmp','.png');

//Marimea maxima a unui fisier (0.5MB)
$max_filesize = 524288; 

//Directorul ce contine fisierele incarcate (files)
$upload_path = './files/'; 

//Numele fisierului.
$filename = $_FILES['userfile']['name']; 

//Aflam extensia fisierului.
$ext = substr($filename, strpos($filename,'.'), 
strlen($filename)-1); 

//Verificam daca fisierul este acceptat. (jpg/gif/bmp/png)
if(!in_array($ext,$allowed_filetypes))
die('Acest fisier nu este acceptat.');

//Verificam marimea fisierului (max 0.5MB)
if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
die('Marimea fisierului este mai mare de 0.5MB.');

// Cream folderul "files" daca acesta nu exista
if (!is_dir('files')) {
	mkdir('files', 0777);
}

//Verifica daca folderul exista si poate fi accesat. (files)
if(!is_writable($upload_path))
die('Folderul specificat nu poate fi accesat. (CHMOD 777)');

//Mutam fisierul in folderul specificat. (files)
if(move_uploaded_file($_FILES['userfile']['tmp_name'],
$upload_path . $filename))
echo 'Fisierul a fost salvat cu succes. 
<a href="' . $upload_path . $filename . '" title="fisier" 
target="_blank"><br/><img src="' . $upload_path . 
$filename . '" width="120px"/></a>';
else
echo 'A aparut o eroare. Mai incearca odata.';
echo "<br/><a href='index.php'>Incarca un fisier</a>";
?> 

Dig this tutorial?
Thank the author by sending him a few P2L credits!

Send
mozzartut

This author is too busy writing tutorials instead of writing a personal profile!
View Full Profile Add as Friend Send PM
Pixel2Life Home Advanced Search Search Tutorial Index Publish Tutorials Community Forums Web Hosting P2L On Facebook P2L On Twitter P2L Feeds Tutorial Index Publish Tutorials Community Forums Web Hosting P2L On Facebook P2L On Twitter P2L Feeds Pixel2life Homepage Submit a Tutorial Publish a Tutorial Join our Forums P2L Marketplace Advertise on P2L P2L Website Hosting Help and FAQ Topsites Link Exchange P2L RSS Feeds P2L Sitemap Contact Us Privacy Statement Legal P2L Facebook Fanpage Follow us on Twitter P2L Studios Portal P2L Website Hosting Back to Top