Cum se face un site de upload download

1. Ca totul sa functioneze trebui sa aveti un domeniu si un host unde puteti gazdui 3 fisiere, fie ca aveti host platit sau free.
2. Mai jos avem codul pentru intarfata siteului de unde veti putea vedea fisierele uploadate si de unde le veti putea descarca, daca va pricepeti cat de cat in html va mai puteti personaliza si voi interfata dupa bunul plac.
Unde gasiti# sau // sau <!–coment explicat–>acolo voi explica cateva lucururi.
Urmatorul cod il copiati in notepad dupa care il salvati ca index.php (extensia este importanta!)

<html>
<head>
<body>
<title>FILE UPLOAD Expert</title>
</body>
</body>
</html>
<?php
# pentru fiecare fisier incarcat, fac o verificare dupa status code
if( !empty( $_FILES ) )
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error > 0) { # echivalent cu ( $_FILES["pictures"]["error"][$key] > 0 )
print “Eroare cu fisierul {$_FILES["pictures"]["tmp_name"][$key]}!”;
} else {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
$name = $_FILES["pictures"]["name"][$key];
# mut fisierul din locatia temporara in directorul curent (acelasi
# director in care se afla scriptul PHP)
move_uploaded_file($tmp_name, “$name”);
}
}
?>
<div>
<center>
<!– Encoding type, specificat de atributul enctype, TREBUIE specificat ca mai jos –>
<form enctype=”multipart/form-data” action=”upload.php” method=”POST”>
Select a file: <input name=”fisier” type=”file” />
<input type=”submit” value=”Upload FILE” />
</form>
</center>
<hr>
<span style=”color: #ff0000;”>Uploaded files can not be deleted,only administrator can delete the files.</span></h5>
<p><h4>Acest site de Uplod Downlod a fost creat de <a href=”http://www.tutorialewindows.com”>Tutorialewindows.com</a></h4><h4>Fisierele odata incarcate pe site nu veti mai avea posibilitatea de a le elimina decat prin cerere pe site pagina de <a href=”http://www.tutorialewindows.com/contact”>Contacte</a></h4>
<hr>
</div>
</head>
</head>
<html>
<head>
<style type=”text/css”>
body
{
background: url(bg.png);  <!–in folderul cu fisiereul index.php va trebui sa punei si o imagine numita bg.php si care va fi afisata ca fundal.–>
}
h1
{
color:orange;
text-align:left;
}
p
{
font-family:”Times New Roman”;
font-size:20px;
}
</style>
</head>
<body>
<h1>Uploaded file LIST</h1>
</body>
</html>
<?
$cartella=”upload/”;
chdir(“./$cartella”);
if(!($dp = opendir(“./”)))
die(“Non riesco a esplorare il contenuto”);
while($file = readdir($dp))
{
if(is_file($file))
$lista[] = $file;
}
if(!($dp = opendir(“./”)))
die(“Non riesco a esplorare il contenuto”);
while($file = readdir($dp))
{
if(!is_file($file))
$lista[] = $file;
}
/*if(!($dp = opendir(“./”)))
die(“Non riesco a esplorare il contenuto”);
while($file = readdir($dp))
{
if(!is_file($file))
$lista[] = $file;
}
*/
sort($lista);
?>
<table border=”1″>
<tr>
<td>
<?
echo “….Tipo file…. “;
?>
</td>
<td>
<?
echo “….Dimensione file KB…. “;
?>
</td>
<td>
<?
echo “Nome….DOWNLOAD FILE ….”;
?>
</td>
<td>
<?
echo “Data upload “;
?>
</td>
</tr>
<tr>
<td>
<?
foreach($lista as $index => $nome)
{
echo “<div align=center>”.filetype($nome).”</div>”;
}
?>
</td>
<td>
<?
foreach($lista as $index => $nome)
{
echo “<div align=center>”.filesize($nome).”</div>”;
}
?>
</td>
<td>
<?
foreach($lista as $index => $nome)
{
?>
<a href=”<? echo $cartella; echo $nome; ?>”><? echo $nome; ?></a><br>
<?
}
?>
</td>
<td>
<?
foreach($lista as $index => $nome)
{
echo date(“F d Y H:i:s.”, filectime($nome)).”<br>”;
}
?>
</td>
</tr>
</table>
<h6 style=”text-align: center;”><span style=”color: #000000;”><a title=”Upload File” href=”http://www.tutorialewindows.com.”></a>tutorialewindows.com</span></h6>
3. Acum avem nevie de un al 2-lea fisier care va face propriu zis uplodarea pe server a fisierelor.
Urmatorul cod il copiati in notepad si il salvati ca upload.php (nu schimbati denumirea)
<html>
<head>
<body>
<title>Upload Expert</title>
</body>
</body>
</html>
<?php
# se verifica daca fisierul incarcat a depasit dimensiunea maxima acceptata
# daca acest lucru se intampla, variabilele $_POST si $_FILES se golesc automat
if( empty( $_POST ) && empty( $_FILES ) ) {
# a fost facut un POST sau nu?
if( isset( $_SERVER['CONTENT_LENGTH'] ) ) {
# atunci cand se trimit date prin post variabila $_SERVER['CONTENT_LENGTH']
# contine valoarea dimensiunii datelor
$POST_MAX_SIZE = ini_get(‘post_max_size’);
if( !empty( $POST_MAX_SIZE ) ) {
# determin limita maxima (care poate fi in KB, MB sau GB
$mul = substr($POST_MAX_SIZE, -1);
$mul = ($mul == ‘M’ ? 1048576 :(
$mul == ‘K’ ? 1024 :( $mul == ‘G’ ? 1073741824 : 1)));
if ( $_SERVER['CONTENT_LENGTH'] > $mul*(int)$POST_MAX_SIZE &&
$POST_MAX_SIZE ) {
print “Fisier prea mare! Ati depasit limita maxima permisa”;
}
} else {
print “Eroare nespecificata (probabil fisierul este prea mare)”;
}
} else {
# nu s-a facut inca submit la fisier, afisez un mesaj
print “Apasati pe ‘Trimite fisier’ pentru a face upload!”;
}
} else {
# $_POST si $_FILES sunt setate; verific alte erori ce pot sa apara
if( $_FILES['fisier']['error'] > 0 ) {
print “A intervenit o eroare (#{$_FILES['fisier']['error']})”;
} else {
# fisierul uploadat va fi pus in subfolderul ‘upload’ (care trebuie sa
# existe deja in aceeasi locatie ca si fisierul upload.php
$uploaddir = dirname( __FILE__ ). DIRECTORY_SEPARATOR .
‘upload’ . DIRECTORY_SEPARATOR;
$uploadfile = $uploaddir . basename($_FILES['fisier']['name']);
if (move_uploaded_file($_FILES['fisier']['tmp_name'], $uploadfile)) {
print “File Successful Upload”;
} else {
print “Nu s-a putut incarca fisierul”;
}
}
}
?>
<br>
<hr/>
<a href=”http://www.tutorialewindows.com”> <b>Back</b></a> <!– IN LOC DE: http://www.tutorialewindows.com, PUNETI ADRESA LA CARE SE VA INTOARCETI DUPA UPLODAREA UNUI FISIER–>
Am opservat ca putin mai sus codul de upload contine :( , platforma wordpress interpreteaza : ( un smile asa ca voi in locul acelor smileuri va trbui sa puneti : (
4. Acum ca aveti fisierul index.php , upload.php si bg.png le puneti pe servarul vostru, impreuna cu aceste 3 fisiere creati un folder denumit upload unde se vor aduga fisierele uploadate din interfata.

Comentarii