Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Jak sprawdzic tablice files
eminiasty
post
Post #1





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 11.09.2015

Ostrzeżenie: (0%)
-----


Przesylam przez formularz pole typu=file. Mam problem z sprawdzeniem czy jest cos przeslane czy nie na zasadzie:
  1. if(...)
  2. {
  3. }
  4. else
  5. {
  6. }


probowalem tez var_dump($_FILES['name']),echo,print_r...
ale zawsze jakies bledy
Ktos poleci jakis sposob prosty?
Ew poda jakis przyklad?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
Star
post
Post #2





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

Ostrzeżenie: (0%)
-----


Wystarczy
  1. if( $_FILES )
  2. {
  3. //Twój kod
  4. }


Jeśli to nie działa, to pokaz html'owy kod od formularza
Go to the top of the page
+Quote Post
eminiasty
post
Post #3





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 11.09.2015

Ostrzeżenie: (0%)
-----


  1. <div class="col-xs-12 col-sm-8">
  2. <label class="napki">Dodaj obrazek:</label>
  3. <input id="upload" name="file_news[]" type="file" class="file" multiple=true>
  4. <input name="max_file_size" type="hidden" value="1048576" />
  5. </div>
  6. ';


Klikam wyslij w formularzu

  1. var_export($_FILES);


i FILES jest puste ?o co chodzi, o co moze chodzi?


dalej cos takiego chcialem o ile by dzialalo przeslanie, lecz tu jakis zonk

  1. if ( isset( $_FILES["file_news"] ) && !empty( $_FILES["file_news"]["name"] ) ) {
  2. echo 'No upload';
  3. }
  4. else
  5. {
  6. echo 'sssss';
  7. }



Ten post edytował eminiasty 1.07.2016, 22:08:08
Go to the top of the page
+Quote Post
franki01
post
Post #4





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Dodaj atrybut enctype do tagu <form>, tak jak poniżej:
Kod
<form enctype="multipart/form-data">

i będzie wysyłać plik.

Ten post edytował franki01 1.07.2016, 22:28:10
Go to the top of the page
+Quote Post
eminiasty
post
Post #5





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 11.09.2015

Ostrzeżenie: (0%)
-----


Mam to dodane tylko poprostu nie zamieszczalem calosci formularza.
  1. <form method="POST" action="mod.php?s=news&a=goedit&id='.$row['news_id'].'" role="form" enctype="multipart/form-data">

Inne pomysly?
Go to the top of the page
+Quote Post
Star
post
Post #6





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

Ostrzeżenie: (0%)
-----


A w tym pliku mod.php próbowałes, na samym początku pliku, wrzucić print_r($_FILES); ?
Formularz wygląda ok, więc powinno normalnie przesyłać
Go to the top of the page
+Quote Post
eminiasty
post
Post #7





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 11.09.2015

Ostrzeżenie: (0%)
-----


array() .. pusta tablica wszedzie..


probuje cos takiego np , pusto
  1. if (isset($_FILES['file_news']) && !empty(!$_FILES['file_news']))
  2. {
  3. foreach ($_FILES['file_news']['name'] as $filename) {
  4. echo $filename . "<br/>";
  5. }


Rozwiazalem poprzedni problem, brakowalo jakiejs pierdzielonej kreski, przez przypadek mi sie musiala skasowac i grzebalem w kodzie pol nocy przez to.

Ale inny haczyk teraz:

  1. var_dump($_FILES['file_news']['name']);
  2. if (!empty($_FILES['file_news'])) {
  3. foreach ($_FILES['file_news']['name'] as $filename) {
  4. echo $filename . "<br/>";
  5. }
  6. }
  7. else{
  8. echo 'aaaaa';
  9. }


Dwa przypadki:

1. wysylam obrazek
  1. array(1) { [0]=> string(10) "images.jpg" } images.jpg

2. nie wysylam obrazka
  1. array(1) { [0]=> string(0) "" }


Dlaczego nie zwraca tego co jest w else czyli tego "aaaaaaaaaa"?

  1. if (empty($_FILES['file_news']['name'])) {
  2. echo "ma zawrtosc";
  3. }
  4. else{
  5. echo 'jest pusta';
  6. }


zawsze zwraca else -jest pusta.. chodz przesyla obrazek , jakas podpowiedz?

Ten post edytował eminiasty 2.07.2016, 11:51:03
Go to the top of the page
+Quote Post
franki01
post
Post #8





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Tablica nie jest pusta, ponieważ zawiera 1 element - pusty string. Zamiast:
Kod
if (!empty($_FILES['file_news'])) {

możesz spróbować:
Kod
if (!empty(array_filter($_FILES['file_news']['name']))) {

array_filter wyrzuci ten pusty string.

Ten post edytował franki01 2.07.2016, 12:27:51
Go to the top of the page
+Quote Post
eminiasty
post
Post #9





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 11.09.2015

Ostrzeżenie: (0%)
-----


Pomoglo.
czyli "" jest liczone jako czesc stringu w tablicy?
Go to the top of the page
+Quote Post
trueblue
post
Post #10





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


http://stackoverflow.com/a/12538850/5889778
Go to the top of the page
+Quote Post
IAmBoskiM
post
Post #11





Grupa: Zarejestrowani
Postów: 72
Pomógł: 11
Dołączył: 8.05.2016

Ostrzeżenie: (0%)
-----


is_uploaded_file
Go to the top of the page
+Quote Post
eminiasty
post
Post #12





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 11.09.2015

Ostrzeżenie: (0%)
-----


Zapytam o jeszcze jedno nie tworzac nowego tematu odnosnie formularza

Zalozmy ze przesylam cos takiego:
  1. <form method="POST" action="admin.php?s=categories&a=add" role="form">...



Czy cos w ten sposob tez nie powinno zadzialac?
  1. <form method="POST" action="admin.php" role="form">
  2. <input type="hidden" name="s" value="categories">
  3. <input type="hidden" name="a" value="add">...


W admin.php jest:

  1. if(isset($_POST['s'])){ $s = preg_replace('#\W#', '', $_POST['s']); }
  2. elseif( isset($_GET['s'])){ $s = preg_replace('#\W#', '', $_GET['s']); }
  3.  
  4. if(isset($s)){
  5. switch ($s) {
  6. case "categories":
  7. include("include/categories.php");
  8. break;
  9. ...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 01:29