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

Problem z kodem php

Object Storage Arubacloud
+1 głos
1,124 wizyt
pytanie zadane 6 maja 2021 w PHP przez TheDarkSide Użytkownik (930 p.)

Coś tu poszło nie tak:

Warning: Undefined array key "my_file" in C:\xampp\htdocs\Thales\upload.php on line 2

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\Thales\upload.php on line 2

 Jakieś pomysły ?

<form name="form" method="post" action="upload.php" enctype="multipart/form-data" >
<input type="file" name="my_file" /><br /><br />
<input type="submit" name="submit" value="Upload"/>
</form>

UPLOAD.PHP:
<?php
if (($_FILES['my_file']['name']!="")){
 $target_dir = "Pliki/";
 $file = $_FILES['my_file']['name'];
 $path = pathinfo($file);
 $filename = $path['filename'];
 $ext = $path['extension'];
 $temp_name = $_FILES['my_file']['tmp_name'];
 $path_filename_ext = $target_dir.$filename.".".$ext;
 
// Check if file already exists
if (file_exists($path_filename_ext)) {
 echo "Sorry, file already exists.";
 }else{
 move_uploaded_file($temp_name,$path_filename_ext);
 echo "Congratulations! File Uploaded Successfully.";
 }
}
?>

 

komentarz 6 maja 2021 przez Filipczak Gaduła (4,020 p.)
możesz dać na początek kodu var_dump($_FILES); i dać co ci wyskakuje?
komentarz 6 maja 2021 przez TheDarkSide Użytkownik (930 p.)

array(1) { ["file"]=> array(5) { ["name"]=> string(7) "2.2.pdf" ["type"]=> string(15) "application/pdf" ["tmp_name"]=> string(24) "C:\xampp\tmp\phpEF82.tmp" ["error"]=> int(0) ["size"]=> int(154487065) } }
Warning: Undefined array key "my_file" in C:\xampp\htdocs\Thales\upload.php on line 3

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\Thales\upload.php on line 3

komentarz 6 maja 2021 przez Filipczak Gaduła (4,020 p.)
Plik upload.php otrzymuje nazwę file nie my_file, spróbuj zmienić nazwę w inputcie na np "myFile". Ale aktualnie jeśli chcesz aby to działało pozamieniaj $_FILES['my_file'] na $_FILES['file']. Jednak zamiast wpisywać != "" użyj funkcji isset albo !empty
komentarz 6 maja 2021 przez TheDarkSide Użytkownik (930 p.)
O matko bosko działa !!! DZiękuję ♥♥♥
komentarz 6 maja 2021 przez TheDarkSide Użytkownik (930 p.)

Dobra, działało przez chwilę:


Warning: Undefined array key "file" in C:\xampp\htdocs\Thales\upload.php on line 2

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\Thales\upload.php on line 2

komentarz 6 maja 2021 przez Filipczak Gaduła (4,020 p.)
możesz pokazać aktualnie twój kod oraz input z file?

2 odpowiedzi

0 głosów
odpowiedź 6 maja 2021 przez wizarddos Nałogowiec (25,930 p.)
Wygląda na to że nie są zadeklarowane takie pola w tablicy (zawierają null). Pojawia się to gdy wchodzisz na upload.php?

Takie rzeczy dobrze sprawdza się funkcją isset() wystarczy że podmienisz na nią warunek w if'ie
0 głosów
odpowiedź 9 maja 2021 przez VBService Ekspert (252,740 p.)
edycja 9 maja 2021 przez VBService

Spróbuj w ten sposób:

<form name="form" method="post" action="upload.php" enctype="multipart/form-data" >
  <input type="file" name="my_file" /><br /><br />
  <input type="submit" name="submit" value="Upload"/>
</form>

<?php
  if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_FILES['my_file']['name'])) {
    $target_dir = 'Pliki/';
    $temp_name = $_FILES['my_file']['tmp_name'];
    $path_filename = $target_dir.$_FILES['my_file']['name'];
  
    // Check if file already exists
    if (file_exists($path_filename)) {
      echo 'Sorry, file already exists.';
    } else {
      move_uploaded_file($temp_name,$path_filename);
      echo 'Congratulations! File Uploaded Successfully.';
    }
  }
?>

 

zamiast <br> w kodzie

<style>
  input {
    display: block;
  }
  input[type="submit"] {
    margin-top: 1em;
  }
</style>

<form name="form" method="post" action="upload.php" enctype="multipart/form-data" >
  <input type="file" name="my_file" />
  <input type="submit" name="submit" value="Upload"/>
</form>

<?php
  if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_FILES['my_file']['name'])) {
    $target_dir = 'Pliki/';
    $temp_name = $_FILES['my_file']['tmp_name'];
    $path_filename = $target_dir.$_FILES['my_file']['name'];
  
    // Check if file already exists
    if (file_exists($path_filename)) {
      echo 'Sorry, file already exists.';
    } else {
      move_uploaded_file($temp_name,$path_filename);
      echo 'Congratulations! File Uploaded Successfully.';
    }
  }
?>

 

Podobne pytania

+1 głos
2 odpowiedzi 342 wizyt
pytanie zadane 5 lipca 2021 w PHP przez <Hunter> Początkujący (430 p.)
0 głosów
2 odpowiedzi 1,183 wizyt
pytanie zadane 9 stycznia 2021 w PHP przez kordix Gaduła (3,910 p.)
+1 głos
3 odpowiedzi 655 wizyt
pytanie zadane 2 października 2020 w PHP przez vingilot85 Obywatel (1,150 p.)

92,551 zapytań

141,399 odpowiedzi

319,530 komentarzy

61,937 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...