• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Programowanie php pomoc-system obsługi plików

Aruba Cloud - Virtual Private Server VPS
0 głosów
129 wizyt
pytanie zadane 24 listopada 2022 w PHP przez xkacperx Nowicjusz (170 p.)

Witam
Potrzebuję pomocy/wyjaśnienia jak wykonać następujące punkty tego zadania:

  • Wysyłanie pliku do wybranego katalogu = to nie wiem czy dobrze wykonane!
  • Zmiana nazwy pliku/Kasowanie pliku - nie wiem od czego zacząć

Mój kod: 

<!DOCTYPE html>
<html>
<body>
  <form method="POST" enctype="multipart/form-data">
    <div>
      <input type="file" name="file" />
    </div>

    <button type="submit" name="submit">ZAŁADUJ</button>
  </form>
<?php

if (isset ($_POST['submit'])) {
    $file = $_FILES['file'];

$fileName = $_FILES['file']['name'];
$fileTmpName = $_FILES['file']['tmp_name'];
$fileSize = $_FILES['file']['size'];
$fileError = $_FILES['file']['error'];
$fileType = $_FILES['file']['type'];

$fileExt = explode ('.', $fileName);
$fileActualExt = strtolower(end($fileExt));

$allowed = array('jpg', 'png', 'gif', 'pdf', 'zip', 'rar', 'doc', 'docx', 'otd');

    if(in_array($fileActualExt, $allowed)) {
        if($fileError === 0) {
                if($fileSize < 100000) {
                    $filenameNew = uniqid('', true).".".$fileActualExt;
                    $fileDestination = 'uploads/'.$filenameNew;
                move_uploaded_file($fileTmpName, $fileDestination);
                header("Location: zadaniepai.php?uploadsuccess");
                } else {
                    echo "Plik jest za duży";
                }
        } else {
            echo "Podczas przesyłania pliku wystąpił błąd!";
        }
    } else {
        echo "Nie możesz przesłać tego typu!";
    }
}
?>

</body>
</html>

 

1
komentarz 24 listopada 2022 przez Velta Maniak (52,830 p.)
edycja 24 listopada 2022 przez Velta

Warto pamiętać, że rozszerzenie pliku nie informuje o jego typie – może pojawić kłopot, jeżeli dalsza część zadania będzie wymagać ich odczytu lub wykonania na nich jakiejś operacji.

Dla sprawdzenia typu pliku warto użyć standardu MIME, porównując zwrócony ciąg z wartością w tablicy (pełna lista tutaj):

$allowed = array(
    "image/jpeg",
    "image/png",
    "image/gif",
    "application/pdf",
    "application/zip",
    "application/vnd.rar",
    "application/msword",
    "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
    "application/vnd.oasis.opendocument.text"
);

$fileMimeType = mime_content_type($_FILES["file"]["tmp_name"]);

if (in_array($fileMimeType, $allowed)) {
    // Do the magic...
}

EDIT: dostosowano pod snippet z pytania.

komentarz 24 listopada 2022 przez xkacperx Nowicjusz (170 p.)

Warning: mime_content_type(grafika.png): Failed to open stream: No such file or directory in C:\xampp\htdocs\php-pai\zadaniepai.php on line 36 - błąd się wyświetla

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

–1 głos
2 odpowiedzi 413 wizyt
pytanie zadane 18 kwietnia 2018 w C i C++ przez gimnazjum Nowicjusz (120 p.)
0 głosów
1 odpowiedź 255 wizyt
pytanie zadane 4 kwietnia 2018 w Inne języki przez komputerowy123 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 448 wizyt
pytanie zadane 22 listopada 2022 w PHP przez xkacperx Nowicjusz (170 p.)

93,327 zapytań

142,323 odpowiedzi

322,397 komentarzy

62,658 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...