Mam formularz z polem pliku o nazwie image
, ale to pole nie jest wymagane.
Gdy użytkownik nie wybierze żadnego pliku w formularzu, do_upload()
zawsze zwróci błąd.
Jak mogę sprawdzić, czy użytkownik wybrał plik przed wykonaniem operacji przesyłania w moim kontrolerze?Jak sprawdzić, czy pole pliku jest puste w codeigniter?
Odpowiedz
Proszę używać pusty()
if (empty($_FILES['userfile']['name'])) {
}
Nie mogę uzyskać dostępu do $ _FILE z kontrolerów kodów. – squiter
To jest $ _FILES nie $ _FILE –
To $ _FILES (liczba mnoga), a dlaczego nie? Twój formularz jest przekazywany do funkcji kontrolera, co oznacza, że wszystkie superglobalne (tj. $ _POST i $ _FILES) są dostępne w ramach funkcji – Matanya
użycie empty() funkcja pusta ma sprawdzić, czy pole plik jest pusty lub nie
if (! empty($_FILES)) {...}
if(!empty($_FILES['myFileField'])) {
// file field is not empty..
} else {
// no file uploaded..
}
Spróbuj sprawdzić, czy plik jest ważny przy użyciu is_uploaded_file()
. Na przykład:
if(is_uploaded_file($_FILES['userfile']['tmp_name']))
{
do_upload();
}
Nie mogę uzyskać dostępu do $ _FILE z kontrolerów kodów. – squiter
W kontrolerze, funkcję, która przyjmuje przedstawioną postać:
if (isset($_FILES['image']['name']) && !empty($_FILES['image']['name'])) {
// do_upload
}
"Zestaw" jest nadmiarowy. Z [docs] (http://php.net/manual/en/function.empty.php): 'empty() jest zasadniczo zwięzłym odpowiednikiem isset ($ var) || $ var == false' –
Jako błąd przesyłania plików „Nie wybrany plik "to numer 4, prawidłowym sposobem wykonania tego jest:
if ($_FILES['my_image_field_name']['error'] !== 4){
if ($this->upload->do_upload('my_image_field_name')) { ...
Podczas sprawdzania według nazwy lub nazwy tmp, mogą istnieć inne powody, dla których te pola nie zostały wypełnione i możesz ich nie zauważyć.
Oto pełne skrypt, aby sprawdzić, czy pole pliku jest pusta lub nie w php
<!DOCTYPE html>
<html>
<body>
<form action="#" method="post" enctype="multipart/form-data">
Select image to upload:
<input name="my_files[]" type="file" multiple="multiple" />
<input type="submit" value="Upload Image" name="submit">
</form>
<?php
if (isset($_FILES['my_files']))
{
$myFile = $_FILES['my_files'];
$fileCount = count($myFile["name"]);
for ($i = 0; $i <$fileCount; $i++)
{
$error = $myFile["error"][$i];
if ($error == '4') // error 4 is for "no file selected"
{
echo "no file selected";
}
else
{
$name = $myFile["name"][$i];
echo $name;
echo "<br>";
$temporary_file = $myFile["tmp_name"][$i];
echo $temporary_file;
echo "<br>";
$type = $myFile["type"][$i];
echo $type;
echo "<br>";
$size = $myFile["size"][$i];
echo $size;
echo "<br>";
$target_path = "uploads/$name"; //first make a folder named "uploads" where you will upload files
if(move_uploaded_file($temporary_file,$target_path))
{
echo " uploaded";
echo "<br>";
echo "<br>";
}
else
{
echo "no upload ";
}
}
}
}
?>
</body>
</html>
Ale bądź czujny. Użytkownik może przesłać dowolny typ pliku, a także zhakować serwer lub system, przesyłając szkodliwy plik lub plik php. W tym skrypcie powinno być kilka zatwierdzeń.
odnoszą http://www.techzigzag.com/how-to-check-that-user-has-upload-any-file-or-not-in-php/
nadzieję, że to pomoże.
Wystarczy użyć natywnego kodu php, aby sprawdzić przesyłanie pliku.
if(!file_exists($_FILES['myfile']['tmp_name']) || !is_uploaded_file($_FILES['myfile']['tmp_name'])) {
echo 'No upload';
}
if(!empty($_FILES[$file_name]['name'])){
// TODO your logic
}else{
echo "empty";
}
- 1. Django sprawdź, czy pole jest puste?
- 2. Sprawdź, czy pole wejściowe jest puste
- 3. Jak sprawdzić, czy płótno jest puste?
- 4. MongoEngine - Zapytanie - Jak sprawdzić, czy pole ListField jest puste lub czy nie jest ustawione
- 5. sposób sprawdzania, czy pole wejściowe jest puste
- 6. Jak testujesz puste pole wejściowe?
- 7. Jak sprawdzić, czy identyfikator już istnieje - CodeIgniter
- 8. Czy pole wejściowe jest prawidłowe, gdy jest puste?
- 9. Jak sprawdzić, czy pola UITextField są puste?
- 10. Codeigniter: jak mogę sprawdzić, czy model jest już załadowany?
- 11. Czy w MySQL możesz sprawdzić, czy pole ma wartość NULL, czy puste, używając tylko jednego porównania?
- 12. Jak sprawdzić, czy pole wyboru jest zaznaczone w TTaskDialog Delphi?
- 13. Jak sprawdzić, czy uchwyt pliku jest gniazdem?
- 14. Jak utworzyć indeks mongo, aby upewnić się, że pole nigdy nie jest puste/puste/puste?
- 15. wymagane puste pole php
- 16. Jak sprawdzić, czy pole ma wartość pustą lub pustą mysql?
- 17. Sprawdź, czy SQL Server 2005 XML pole jest puste
- 18. Flask-WTForms: jak sprawdzić, czy pole jest wymagane?
- 19. Kotlin. Jak sprawdzić, czy pole jest neutralne poprzez odbicie?
- 20. Jquery, jeśli pole hasła jest puste
- 21. Jak sprawdzić, czy UITextField w iOS ma puste spacje
- 22. Jak sprawdzić, czy ciasteczka są puste czy nie
- 23. , aby sprawdzić, czy wszystkie EditText są puste
- 24. Jak dodać atrybut zastępczy, jeśli pole "wartość" jest puste
- 25. Powrót 0, jeśli pole jest puste w MySQL
- 26. Jak sprawdzić, czy plik jest wykonywalny w pliku node.js?
- 27. Glyphicons renderowania jako puste pole
- 28. Jak sprawdzić, czy autocommit jest włączony czy nie, postgres 'psql
- 29. Jak sprawdzić, czy Czytelnik jest w EOF?
- 30. Jak sprawdzić, czy dane wyjściowe polecenia "znajdź" są puste?
Wystarczy usunąć 'required' regułę jeśli zadeklarowały go w zasady walidacji –
nie mam wymagają sprawdzania poprawności dla tego pola. – squiter
Nie powinieneś mieć żadnych błędów, gdy użytkownik nie wybierze żadnego pliku w formularzu. Jaki dokładnie jest błąd? –