Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Proste sprawdzenie czy użytkownik przesłał plik czy nie
LargerWoo
post 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 winksmiley.jpg

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
Go to the top of the page
+Quote Post
potreb
post 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 .


--------------------

Go to the top of the page
+Quote Post
john_doe
post 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
Go to the top of the page
+Quote Post
LargerWoo
post 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
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 21.09.2024 - 23:43