Forum » Izdelava spletišč » Problem pri php upload skripti
Problem pri php upload skripti
mason6 ::
Zdravo. Potrebujem php skripto, ki omogoča nalaganje datotek na nek direktorij. To seveda ni problem, ampak iščem še nekaj takega, da bi mi po prenosu datoteke na strežnik, spodaj izpisalo seznam datotek, ki so bile naložene, po možnosti z brisanjem.
Eno takšno skripto sem sicer našel, ki naj bi omogočala vse kar hočem, vendar ne deluje prikaz datotek na strani, posledično pa tudi ne deluje brisanje. Podatke sicer skripta beleži v log file, ampak rad bi, da jih prikaže na strani.
Prosim za pomoč.
Koda:
Eno takšno skripto sem sicer našel, ki naj bi omogočala vse kar hočem, vendar ne deluje prikaz datotek na strani, posledično pa tudi ne deluje brisanje. Podatke sicer skripta beleži v log file, ampak rad bi, da jih prikaže na strani.
Prosim za pomoč.
Koda:
<?php //vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv // You may change maxsize, and allowable upload file types. //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //Mmaximum file size. You may increase or decrease. $MAX_SIZE = 10000000; //Allowable file ext. names. you may add more extension names. $FILE_EXTS = array('.zip','.jpg','.png','.gif','.doc','.xls','.pdf','.psd','.png','.txt'); //Allow file delete? no, if only allow upload only $DELETABLE = true; //vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv // Do not touch the below if you are not confident. //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /************************************************************ * Setup variables ************************************************************/ $site_name = $_SERVER['HTTP_HOST']; $url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']); $url_this = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; $upload_dir = "files/"; $upload_url = $url_dir."/files/"; $message =""; /************************************************************ * Create Upload Directory ************************************************************/ if (!is_dir("files")) { if (!mkdir($upload_dir)) die ("upload_files directory doesn't exist and creation failed"); if (!chmod($upload_dir,0755)) die ("change permission to 755 failed."); } /************************************************************ * Process User's Request ************************************************************/ if ($_REQUEST[del] && $DELETABLE) { $resource = fopen("log.txt","a"); fwrite($resource,date("Ymd h:i:s")."DELETE - $_SERVER[REMOTE_ADDR]"."$_REQUEST[del]n"); fclose($resource); if (strpos($_REQUEST[del],"/.")>0); //possible hacking else if (strpos($_REQUEST[del],$upload_dir) === false); //possible hacking else if (substr($_REQUEST[del],0,6)==$upload_dir) { unlink($_REQUEST[del]); print "<script>window.location.href='$url_this?message=deleted successfully'</script>"; } } else if ($_FILES['userfile']) { $resource = fopen("log.txt","a"); fwrite($resource,date("Ymd h:i:s")."UPLOAD - $_SERVER[REMOTE_ADDR]" .$_FILES['userfile']['name']." " .$_FILES['userfile']['type']."n"); fclose($resource); $file_type = $_FILES['userfile']['type']; $file_name = $_FILES['userfile']['name']; $file_ext = strtolower(substr($file_name,strrpos($file_name,"."))); //File Size Check if ( $_FILES['userfile']['size'] > $MAX_SIZE) $message = "The file size is over 10MB."; //File Extension Check else if (!in_array($file_ext, $FILE_EXTS)) $message = "Sorry, $file_name($file_type) is not allowed to be uploaded."; else $message = do_upload($upload_dir, $upload_url); print "<script>window.location.href='$url_this?message=$message'</script>"; } else if (!$_FILES['userfile']); else $message = "Invalid File Specified."; /************************************************************ * List Files ************************************************************/ $handle=opendir($upload_dir); $filelist = ""; while ($file = readdir($handle)) { if(!is_dir($file) && !is_link($file)) { $filelist .= "<a href='$upload_dir$file'>".$file."</a> - URL: <b>$upload_url$file</b>"; if ($DELETABLE) $filelist .= " Added at ".date("d-m H:i", filemtime($upload_dir.$file)) .""; $filelist .= " <a style='text-decoration:none; font-weight:bold' href='?del=$upload_dir".urlencode($file)."' title='delete'>x</a>"; $filelist .="<br>"; } } function do_upload($upload_dir, $upload_url) { $temp_name = $_FILES['userfile']['tmp_name']; $file_name = $_FILES['userfile']['name']; $file_name = str_replace("","",$file_name); $file_name = str_replace("'","",$file_name); $file_path = $upload_dir.$file_name; //File Name Check if ( $file_name =="") { $message = "Invalid File Name Specified"; return $message; } $result = move_uploaded_file($temp_name, $file_path); if (!chmod($file_path,0777)) $message = "change permission to 777 failed."; else $message = ($result)?"$file_name was uploaded successfully." : "Something is wrong with uploading the file."; return $message; } ?> <html> <head> <title>Simple uploader</title> <link rel=stylesheet href=style.css> </head> <body> <br><br> <center> <font color=red><?=$_REQUEST[message]?></font> <br> <form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post"> Objavi datoteko <input type="file" id="userfile" name="userfile"> <input type="submit" name="upload" value="Objavi"> </form> <br><b><u>Objavljene datoteke:</b></u><br><br> <?=$filelist?><br> <a style="text-decoration:none" </a> </sup></small> </center>
Tody ::
Tole kar piše v 279 vrstici niti v sanjah ne more biti prav :) Probaj kak echo če ne drugega
MrBrdo ::
Tody še nisi videl
taga? :) Ne pisat "niti v sanjah" če nisi prepričan hehe.
Drgač pa @OP, se bo treba naučit programirat, ane
<?=
taga? :) Ne pisat "niti v sanjah" če nisi prepričan hehe.
Drgač pa @OP, se bo treba naučit programirat, ane
MrBrdo
Zgodovina sprememb…
- spremenilo: MrBrdo ()
Tody ::
ja sem se spomnu na to opcijo ko sem pritisnu send... jeba pač ne sledim trendom :)
se posipam s pepelom če komu to pomaga :D
se posipam s pepelom če komu to pomaga :D
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | 2 ftp serverjaOddelek: Omrežja in internet | 1854 (1449) | knesz |
» | Ftp batch jobs - preglednostOddelek: Programska oprema | 693 (626) | psychoshorty |
» | Odkrita nova Flash ranljivost, ki ugrabi odložišče (strani: 1 2 )Oddelek: Novice / Varnost | 9366 (5171) | r0b3rt |
» | [PHP] Zend engine?Oddelek: Programiranje | 1695 (1540) | Gandalfar |
» | forum...Oddelek: Izdelava spletišč | 1240 (1014) | nemesis |