• 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 PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
44 wizyt
pytanie zadane 24 listopada 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 przez Velta Maniak (50,670 p.)
edycja 24 listopada 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 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 173 wizyt
pytanie zadane 18 kwietnia 2018 w C i C++ przez gimnazjum Nowicjusz (120 p.)
0 głosów
1 odpowiedź 149 wizyt
pytanie zadane 4 kwietnia 2018 w Inne języki przez komputerowy123 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 99 wizyt
pytanie zadane 22 listopada w PHP przez xkacperx Nowicjusz (170 p.)

89,758 zapytań

138,361 odpowiedzi

309,420 komentarzy

59,673 pasjonatów

Advent of Code 2022

Top 15 użytkowników

  1. 908p. - Argeento
  2. 877p. - nidomika
  3. 851p. - Michal Drewniak
  4. 848p. - Mikbac
  5. 846p. - rucin93
  6. 838p. - Łukasz Eckert
  7. 835p. - ssynowiec
  8. 822p. - TheLukaszNs
  9. 794p. - JMazurkiewicz
  10. 787p. - Hubert Chęciński
  11. 786p. - adrian17
  12. 760p. - Mawrok
  13. 756p. - overcq
  14. 752p. - Vinox
  15. 747p. - Fiji404
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...