Loading:

PHP 7 News & Updates v7.0 - 7.4 - book

Prywatne pliki dla użytkowników w portalu

Ten skrypt pokazuje jak łatwo można stworzyć system prywatnych plików dla użytkownika. Kod jest w miarę przejrzysty. Jest to przerowbiony kod, którego ja sam nie pisałem!



Napisz Artykuł

Listing

<?php

$login = $_SESSION['login'];
 
if(isset($_POST['submit'])){
switch($_POST['wybor'])
{
        case 'zdjecie':
        $plik_tmp = $_FILES['plik']['tmp_name'];
        $plik_nazwa = $_FILES['plik']['name'];
        $plik_rozmiar = $_FILES['plik']['size'];
        $plik_mime = $_FILES['plik']['type'];
        $rozszerzenia_tab = array("jpg","png","gif","jpeg","JPG","PNG","GIF","JPEG");
        $ext = substr($plik_nazwa,strrpos($plik_nazwa,'.')+1);
        $typy_mime = array("image/gif","image/jpeg","image/png","image/jpg");
        $image = getimagesize($_FILES['plik']['tmp_name']);
 
        if(is_uploaded_file($plik_tmp)){
                if(!file_exists("../home/$login/".$plik_nazwa)){
                        if($plik_rozmiar <= 6291456){
                                if(in_array($ext,$rozszerzenia_tab)){
                                        if(in_array($plik_mime,$typy_mime)){
                                                if(is_array($image) && $image[0] > 4){
                                                        $plik_nazwa = "../home/$login/".md5(time()).'-'.$_SERVER['REMOTE_ADDR'].'-'.$plik_nazwa;
                                                        move_uploaded_file($plik_tmp, $plik_nazwa);
                                                        echo "Plik: <strong>".$_FILES['plik']['name']."</strong> o rozmiarze
                                                        <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!"
;
                                                }else echo "Niewlasciwy plik - getimagesize";
                                        }else echo "Plik niewlasciwy - mime";
                                }else echo "Plik niewlasciwy - rozszerzenie";
                        }else echo "Podany plik jest za duzy";
                } else echo "Nazwa pliku jest zajeta";
        }
        break;
 
        case 'archiwum':
        $plik_tmp = $_FILES['plik']['tmp_name'];
        $plik_nazwa = $_FILES['plik']['name'];
        $plik_rozmiar = $_FILES['plik']['size'];
        $plik_mime = $_FILES['plik']['type'];
        $rozszerzenia_tab = array("gzip","zip","rar","tar","GZIP","ZIP","RAR","TAR","7z","7Z");
        $ext = substr($plik_nazwa,strrpos($plik_nazwa,'.')+1);
        $typy_mime = array("application/zip","application/rar","application/x-compressed","application/x-zip-compressed","multipart/x-zip","application/x-gzip","application/x-gtar","application/x-rar-compressed","application/octet-stream","application/x-7z-compressed");

 
        if(is_uploaded_file($plik_tmp)){
                if(!file_exists("../home/$login/".$plik_nazwa)){
                        if($plik_rozmiar <= 6291456){
                                if(in_array($ext,$rozszerzenia_tab)){
                                        if(in_array($plik_mime,$typy_mime)){
                                                $plik_nazwa = "../home/$login/".md5(time()).'-'.$_SERVER['REMOTE_ADDR'].'-'.$plik_nazwa;
                                                move_uploaded_file($plik_tmp, $plik_nazwa);
                                                echo "Plik: <strong>".$_FILES['plik']['name']."</strong> o rozmiarze
                                                <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!"
;
                                        }else echo "Plik niewlasciwy - mime";
                                }else echo "Plik niewlasciwy - rozszerzenie";
                        }else echo "Podany plik jest za duzy";
                } else echo "Nazwa pliku jest zajeta";
        }
        break;
       
        case 'inne':
        $plik_tmp = $_FILES['plik']['tmp_name'];
        $plik_nazwa = $_FILES['plik']['name'];
        $plik_rozmiar = $_FILES['plik']['size'];
        $plik_mime = $_FILES['plik']['type'];
        $rozszerzenia_tab = array("exe","rtf","txt","doc","docx","ppt","pptx","xls","xlsx","svg","mdx","mdl","w3x","cmd","bat","CMD","mw","EXE","RTF","TXT","DOC","DOCX","PPT","PPTX","XLS","XLSX","SVG","MDX","MDL","W3X","BAT","html","htm","phtml","asp","aspx","HTML","HTM","PHTML","ASP","ASPX","bin","iso","cut","BIN","ISO","CUT","img","ima","IMG","IMA");
        $ext = substr($plik_nazwa,strrpos($plik_nazwa,'.')+1);
 
        if(is_uploaded_file($plik_tmp)){
                if(!file_exists("../home/$login/".$plik_nazwa)){
                        if($plik_rozmiar <= 6291456){
                                if(in_array($ext,$rozszerzenia_tab)){
                                                $plik_nazwa = "../home/$login/".md5(time()).'-'.$_SERVER['REMOTE_ADDR'].'-'.$plik_nazwa;
                                                move_uploaded_file($plik_tmp, $plik_nazwa);
                                                echo "Plik: <strong>".$_FILES['plik']['name']."</strong> o rozmiarze
                                                <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!"
;
                                        }else echo "Plik niewlasciwy - mime";
                                }else echo "Plik niewlasciwy - rozszerzenie";
                        }else echo "Podany plik jest za duzy";
                } else echo "Nazwa pliku jest zajeta";
        }
}
?>


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=2&t=5529

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: eider Ranga: Poziom 10 Punktów: 400
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors