|
upload datotek
|
| zabiti |
Posted on 27.07.2006 ob 18:58
|
Programer
Posts: 117
Joined: 11.02.06
|
kaj mi lahko kdo prosim napiše kakšno kodo za upload datotek? V kodi naj bi se dalo urejat dovoljena velikost, v katero mapo daje datoteke, ter katere vrste datotek se lahko uploada. |
| |
|
|
| Profesor |
Posted on 27.07.2006 ob 20:08
|

Direktor
Posts: 1044
Joined: 14.09.05
|
Veliko o tem imaš na PHPjevi strani, tako ta kar KLIK TUKAJ (veliko primerov je spodaj, kjer so komentarji uporabnikov).
Sicer pa imaš tudi primer, ki ga je malo prej objavil MaRweed v temi TUKAJ.
Edited by Profesor on 27.07.2006 ob 20:08 |
| |
|
|
| zabiti |
Posted on 27.07.2006 ob 23:23
|
Programer
Posts: 117
Joined: 11.02.06
|
Code<?php
$MAX_velikost = 100000000000;
echo'<form method="POST" action ="upload.php" enctype="multipart/form-data"><p align=center>
<input type="file" name="datoteka" class="textbox" size="40">
<input type="submit" value="Dodaj datoteko" class="button" name="dodaj_datoteko"></p></form>';
if (isset($_POST['dodaj_datoteko'])) {
if($_FILES['datoteka']['name'] != "") {
$velikost = $_FILES['datoteka']['size'];
$tip_datoteke = $_FILES['datoteka']['type'];
if($tip_datoteke == "image/gif") { $koncnica = ".gif"; }
if($tip_datoteke == "image/pjpeg") { $koncnica = ".jpg"; }
if($tip_datoteke == "image/png") { $koncnica = ".png"; }
if($tip_datoteke == "image/jpeg") { $koncnica = ".jpg"; }
if($tip_datoteke == "image/bmp") { $koncnica = ".bmp"; }
if($tip_datoteke == "multipart/x-zip") { $koncnica = ".x-zip"; }
if($tip_datoteke == "video/avi") { $koncnica = ".avi"; }
if($tip_datoteke == "video/mpg") { $koncnica = ".mpg"; }
if($tip_datoteke == "video/mpeg") { $koncnica = ".mpeg"; }
if($tip_datoteke == "video/mp3") { $koncnica = ".mp3"; }
if($tip_datoteke == "movie/wmv") { $koncnica = ".wmv"; }
if($koncnica == "") {
echo "<p align=center><font class=tema>Format slike je neveljaven!</font></p>";
}
else if($velikost > $MAX_velikost){echo "<p align=center><font class=tema>Slika je prevelika!</font></p>";}
else {
do
{
$dir_fotke = "images/";
mt_srand ((double) microtime() * 10000);
$nakljucno_ime = mt_rand();
$fotka = $nakljucno_ime . $koncnica;
} while (file_exists($fotka));
$uploaddir = 'images/';
$uploadfile_left = $uploaddir. $fotka;
print "<pre>";
if (copy($_FILES['datoteka']['tmp_name'], $uploadfile_left)) {echo "<br><br><p align=center><font face=Times New Roman class=teme name=submitform size=5>Slika <a href=$dir_fotke$fotka target=_blink style=text-decoration:none> $fotka </a> je uspešno naložena!
<br><br> Če želiš videti naložene datoteke klikni tukaj: <a href=$dir_fotke style=text-decoration:none> Naložene datoteke </a></font></p>";
}
}
}
}
?>
evo nekaj sm skupaj spacal, zdej me zanima, kk bi naredil, da preveri če ta datoteka obstaja, če je v imenu datoteke presledek in kako da bi se dala datoteka preimenovat. Dejte mi prosim pregledat, če je v kodi kaj preveč napisano. Kaj moram napisat, da mi bodo delali šumniki?
Edited by zabiti on 28.07.2006 ob 18:07 |
| |
|
|
| Kolibri |
Posted on 28.07.2006 ob 11:44
|
Projektni vodja
Posts: 946
Joined: 03.10.05
|
Po mojem je najbolš, če bi dol datoteki kr eno številčno ime napr 1375823.gif
pa pomojem je bl enostavno preverjat tip datoteke iz podaljška.
drugač pa daš funkcijo move_uploaded_file($_FILES['slika']['tmp_name'],$novo_ime)
Smešne slike, smešni filmčki
Snake game |
| |
|
|
| Profesor |
Posted on 28.07.2006 ob 17:11
|

Direktor
Posts: 1044
Joined: 14.09.05
|
To glede končnine je že vredu, saj je tako bolj natančen podatek, pa tudi če kdo ponesreči da gor "wtf" namesto "wtf.gif" je kul, ker prepozna mime type.
Presledke pa lahko menjaš z str_replace(), pa jih zamenjaj z _ alpa čem podobnim 
Ime fotke pa upam, da boš znal zamenjat sj to pa samo spremeniš vrednost spremenljivke (hint: $fotka)  |
| |
|
|
| zabiti |
Posted on 28.07.2006 ob 17:25
|
Programer
Posts: 117
Joined: 11.02.06
|
if($tip_datoteke == "video/mp3") { $koncnica = ".mp3"; }
if($tip_datoteke == "video/wmv") { $koncnica = ".wmv"; }
kaj mora pisati tukaj namesto video? Ker mi napiše da format ni pravlen |
| |
|
|
| Profesor |
Posted on 28.07.2006 ob 19:07
|

Direktor
Posts: 1044
Joined: 14.09.05
|
To lahko stestiraš tudi sam, uploadaš datoteko in izpišeš tip, torej:
echo $_FILES['datoteka']['type'];
pa boš videl kater tip je 
|
| |
|
|
| zabiti |
Posted on 29.07.2006 ob 13:39
|
Programer
Posts: 117
Joined: 11.02.06
|
tisto s presledkom in obstoječo datoteko sem rešil ter formati sem rešil, vendar ap nisem pogruntal kako bi s tem preimenoval. Code <input type="text" name="novo_ime" class="text" size="40">.
za .mp3 in .wav končnico sem ugotovil da sta audio/mpeg oz /wav vendar mi vseeno noče prekopirati teh dveh datotek
Edited by zabiti on 29.07.2006 ob 13:48 |
| |
|
|
| Profesor |
Posted on 29.07.2006 ob 14:24
|

Direktor
Posts: 1044
Joined: 14.09.05
|
S tem bi preimenoval tako da daš tam kjer imaš:
$uploadfile_left = $uploaddir. $fotka;
namesto tega:
$uploadfile_left = $uploaddir. $_POST['novo_ime']; 
Mal preglej kodo, zih boš najdu kako neumno napako  |
| |
|
|
| zabiti |
Posted on 30.07.2006 ob 17:03
|
Programer
Posts: 117
Joined: 11.02.06
|
kaj pomeni koda print "<pre>"; Sem opazil, da mi pomanjša zadnji napis. |
| |
|
|
| Profesor |
Posted on 30.07.2006 ob 17:28
|

Direktor
Posts: 1044
Joined: 14.09.05
|
Odstrani to.. ta tag pač naredi, da ti izpiše text točno tako kot ga podaš.. npr. če maš text:
1
2
3
ti ga bo izpisalo isto vsako številko v naslednji vrstici, če pa tega nebi bilo, pa bi bile vse številke v eni vrstici (ker ni <br /> taga).
Ta tag pride prav ko debagiramo, npr. preden se uporabi print_r() damo ponavad to, da nam lepo izpiše strukturo tabele  |
| |
|
|
| zabiti |
Posted on 30.07.2006 ob 20:37
|
Programer
Posts: 117
Joined: 11.02.06
|
sem eni normalno .txt datoteki spremenil končnico v .mp3 pa mi jo je uploadalo. Enako je z wav. Kaj je možno da mi strežnik ne dopušča upload pravih mp3 pesmi? |
| |
|
|
| Profesor |
Posted on 30.07.2006 ob 20:54
|

Direktor
Posts: 1044
Joined: 14.09.05
|
Kaj ti pa javi? Tisto tvoje sporočilo "format slike ni veljaven" ali kaj drugega? |
| |
|
|
| zabiti |
Posted on 30.07.2006 ob 23:08
|
Programer
Posts: 117
Joined: 11.02.06
|
evo to je vsa koda ki jo imam. Odspodaj je še koda za izbris datoteke.
Ja tisto sporočilo mi napiše.
Aja pa še to je kaj narobe če 2x uporabim php kodo v eni datoteki. tako kot mam sedaj en del za upload in en za izbris?
Code<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
</head>
<body bgcolor="#004080" text="#FFFFFF" link="#00FFFF" vlink="#00FFFF">
</body>
</html>
<?php
$MAX_velikost = 15728640;
echo'<p align=center><font face=Times New Roman class=teme size=4>Če želiš uploadati datoteko, izpolnite ta obrazec.</font></p>
<form method="POST" action ="upload.php" enctype="multipart/form-data"><p align=center>
<input type="file" name="datoteka" class="textbox" size="40">
<input type="submit" value="Dodaj datoteko" class="button" name="dodaj_datoteko"></p></form>';
if (isset($_POST['dodaj_datoteko'])) {
if($_FILES['datoteka']['name'] != "") {
$fname = $_FILES['datoteka']['name'];
$popravek = str_replace(" ", '_', $fname);
$velikost = $_FILES['datoteka']['size'];
$tip_datoteke = $_FILES['datoteka']['type'];
if($tip_datoteke == "image/gif") { $koncnica = ".gif"; }
if($tip_datoteke == "image/pjpeg") { $koncnica = ".jpg"; }
if($tip_datoteke == "image/x-png") { $koncnica = ".png"; }
if($tip_datoteke == "image/png") { $koncnica = ".png"; }
if($tip_datoteke == "image/jpeg") { $koncnica = ".jpg"; }
if($tip_datoteke == "image/bmp") { $koncnica = ".bmp"; }
if($tip_datoteke == "application/x-zip-compressed") { $koncnica = ".zip"; }
if($tip_datoteke == "video/avi") { $koncnica = ".avi"; }
if($tip_datoteke == "video/mpeg") { $koncnica = ".mpeg"; }
if($tip_datoteke == "audio/mpeg") { $koncnica = ".mp3"; }
if($tip_datoteke == "audio/wav") { $koncnica = ".wav"; }
if($tip_datoteke == "video/x-ms-wmv") { $koncnica = ".wmv"; }
if($tip_datoteke == "text/plain") { $koncnica = ".txt"; }
if($tip_datoteke == "application/msword") { $koncnica = ".doc"; }
if($tip_datoteke == "application/vnd.ms-excel") { $koncnica = ".xls"; }
if($tip_datoteke == "application/vnd.ms-powerpoint") { $koncnica = ".ppt"; }
if($koncnica == "") {
echo "<p align=center><font face=Times New Roman class=teme size=4>Format datoteke je neveljaven!</font></p>";
}
else if($velikost > $MAX_velikost)
{echo "<p align=center><font face=Times New Roman class=teme size=4>Datoteka $popravek je prevelika!</font></p>";}
else {
do
{
$dir_datoteke = "files/";
$datoteka = $popravek;
} while (file_exists($datoteka));
if (file_exists($dir_datoteke. $datoteka)) {
echo "<p align=center><font face=Times New Roman class=teme size=4>Datoteka $datoteka že obstaja,
<br>preimenuj datoteko in poskusi ponovno!</font></p>";
} else{
$uploaddir = 'files/';
$uploadfile_left = $uploaddir. $datoteka;
if (copy($_FILES['datoteka']['tmp_name'], $uploadfile_left))
{echo "<p align=center><font face=Times New Roman class=teme size=4>
Datoteka <a href=$uploadfile_left target=_blink style=text-decoration:none> $datoteka </a> je uspešno naložena!
<br>Če želiš videti novo naložene datoteke klikni tukaj:
<a href=$dir_datoteke style=text-decoration:none> Naložene datoteke </a></font></p>";
}
}
}
}
}
?>
<?php
echo'<br>
<p align=center><font face=Times New Roman class=teme size=4>
Za izbris datoteke, vnesi njeno polno ime ter vpišite geslo!</font></p>
<form method="POST" action ="upload.php" enctype="multipart/form-data"><p align=center>
Ime datoteke <input type="text" name="datoteka" class="textbox" size="20"><br>
Geslo za izbris <input type="password" name="delet" class="textbox" size="20"><br>
<input type="submit" value="Izbriši" class="button" name="izbrisi"></p></form>';
if($_POST['datoteka'] != "") {
$geslo = $_POST['delet'];
$password="asdf";
$fname = $_POST['datoteka'];
if($geslo != $password) {
echo "<p align=center><font face=Times New Roman class=teme size=4>Geslo ni pavilno!</font></p>";
}
else if (file_exists("files/$fname")) {
function brisanje($datoteke)
{
unlink($datoteke);
}
brisanje("files/$fname");
echo "<p align=center><font face=Times New Roman class=teme size=4>Datoteka $fname je uspešno izbrisana</font></p>";
} else{
echo "<p align=center><font face=Times New Roman class=teme size=4>Datoteka ne obstaja!</font></p>";
}
}
?>
Edited by zabiti on 30.07.2006 ob 23:10 |
| |
|
|
| Gulch |
Posted on 16.01.2007 ob 20:40
|
Programer
Posts: 46
Joined: 01.12.06
|
kaj pa moram napisat v upload.php datoteko |
| |
|
|
| zabiti |
Posted on 16.01.2007 ob 21:10
|
Programer
Posts: 117
Joined: 11.02.06
|
dobri stari časi To vprašanje sem tudi jaz postavil na začetku. In odgovor je bil, da to kodo shraniš v upload.php |
| |
|
|
| Kolibri |
Posted on 16.01.2007 ob 21:17
|
Projektni vodja
Posts: 946
Joined: 03.10.05
|
ja... to so bli časi
Smešne slike, smešni filmčki
Snake game |
| |
|
|
| zabiti |
Posted on 16.01.2007 ob 22:21
|
Programer
Posts: 117
Joined: 11.02.06
|
ampak v teh pol leta sem se naučil kar nekaj osnov PHP-ja. Sploh pa mi je bilo v pomoč učenje jave v šoli. Čez par let bom res lahko delal 200% službo |
| |
|
|
| Gulch |
Posted on 16.01.2007 ob 23:35
|
Programer
Posts: 46
Joined: 01.12.06
|
o kul ... no to mi dela ...sam neki me zanima... a se da naštimat tko da brez da ne vpišeš gesla za izbris, ne morš uploadat datoteko? pa da dostopaš do direktorija novonaloženih datotek, da morš upisat geslo ... a se to da narest ? |
| |
|
|
| Profesor |
Posted on 17.01.2007 ob 00:34
|

Direktor
Posts: 1044
Joined: 14.09.05
|
Seveda se da, dodaš novo polje z geslom (input name="geslo" type="password" in potem preden uploadaš datoteke preveriš, če je geslo pravo if ($_POST['geslo'] == "tistopravogeslo" { upload_datotek_tukaj } |
| |
|