[PHP] Proste sprawdzenie czy użytkownik przesłał plik czy nie |
[PHP] Proste sprawdzenie czy użytkownik przesłał plik czy nie |
1.11.2010, 21:07:36
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 1.11.2010 Skąd: Miasto królów Polski Ostrzeżenie: (0%) |
Przede wszystkim chciałbym wszystkich po raz pierwszy powitać na tym forum
Wracają co tematu, to dopiero zaczyna przygodę z php i aktualnie buduję swój pierwszy system CMS do bloga. Na początku stworzyłem sobie system edycji tekstu, dodałem opcję automatycznego dodania daty itp i poszło mi ogólnie całkiem nieźle. Problemy zaczęły się kiedy próbuję dodać system wrzucania do każdego wpisu głównego zdjęcia. Tak wyglada kod html: Kod <form action="..." enctype="multipart/form-data" method="post"> // tutaj kilka <input type="text" name="NAME" value="" id="ID" /> // no i upload obrazka: <input type="hidden" name="MAX_FILE_SIZE" value="1000000" /> <input type="file" name="file_upload" /> <input type="submit" name ="submit" value="" /> </form> Moje pytanie brzmi - jak postawić warunek w którym plik przez użytkownika albo został przesłany albo nie? To jest kod który odbiera plik: Kod $tmp_file = $_FILES['file_upload']['tmp_name']; $target_file = basename($_FILES['file_upload']['name']); $upload_dir = "uploads"; if(move_uploaded_file($tmp_file, $upload_dir."/".$target_file)) { $message .= "File uploaded successfully.<br>"; } else { $error = $_FILES['file_upload']['error']; $message .= $upload_errors[$error]; Próbowałem if(isset($_FILES['file_upload']['tmp_name'])) ale wywala mi błąd. Chodzi mi o to, że informacje o adresie pliku trzymam w bazie danych. Chcę dodać taką opcję, że jeżeli użytkownik nie wybierze pliku to do bazy zostaje dodany wpis "no_picture" i do wpisu na blogu nie zostaje wyświetlony obrazek... Ogólnie odbieranie z tego formularza na raz tekstu i pliku sprawia mi dużo problemu, czy znacie może jakieś źródła gdzie mogę się nauczyć rozwiązań stosowanych przez doświadczonych programistów? Ten post edytował LargerWoo 1.11.2010, 21:11:15 |
|
|
1.11.2010, 22:30:39
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 568 Pomógł: 192 Dołączył: 7.03.2005 Skąd: Warszawa Ostrzeżenie: (0%) |
Sprawdzasz czy wystąpił plik z tablicy $_FILES['file_upload']['error'] możesz wyciągnąć info czy wszystko przebieglo okey, czy nie, ewentualnie jeszcze sprawdzić czy plik istnieje po uploadzie .
-------------------- |
|
|
1.11.2010, 22:39:28
Post
#3
|
|
Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) |
Witaj, zerknij w manual
http://pl.php.net/manual/en/function.is-uploaded-file.php lub np. użyj file_exist() - sprawdzaj czy plik jest na serwerze, jeśli nie ma pakuj defaultowy pic |
|
|
2.11.2010, 11:47:54
Post
#4
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 1.11.2010 Skąd: Miasto królów Polski Ostrzeżenie: (0%) |
Zastosowalem
Kod if(is_uploaded_file($_FILES['file_upload']['tmp_name'])) i mam error dokladnie dla tej linii: Kod Notice: Undefined index: file_upload in ...\edit_blog.php on line 12 W kazdym przypadku wlasciwie zwraca mi error ze $_FILES jest niezdefiniowane... Co robie zle i jakich jeszcze informacji potrzebujecie aby mi pomoc? @EDIT Zapomnialem o enctype="multipart/form-data"!!! Nie wiem jakim cudem, bo bylem swiecie przekonany, ze tam jest! Teraz nie powinno byc problemu.. @EDIT2 Teraz wszystko w pełni działa, dzięki za pomoc! Nigdy nie zapominajcie o enctype!! Ten post edytował LargerWoo 2.11.2010, 12:08:13 |
|
|
Wersja Lo-Fi | Aktualny czas: 21.09.2024 - 23:43 |