maciu
26.12.2003, 21:30:08
Poprzez formularz (name=zdjecie) dodaje zdjęcie, które następnie ma sięwgrać na serwer. Kod wygląda tak:
[php:1:5c0f5c04ec]
$zdjecie = $_FILES['zdjecie']['tmp_name'];
$zdjecie_size = $_FILES['zdjecie']['size'];
$zdjecie_type = $_FILES['zdjecie']['type'];
$zdjecie_error = $_FILES['zdjecie']['error'];
if ($zdjecie_error > 0) {
switch ($zdjecie_error)
{
case 1: echo '<B>BŁĄD:</B> Rozmiar pliku przekroczył wartość upload_max_filesize'; break;
case 2: echo '<B>BŁĄD:</B>Rozmiar pliku przekroczył wartość max_file_size'; break;
case 3: echo '<B>BŁĄD:</B>Plik wysłany tylko częściowo'; break;
case 4: echo '<B>BŁĄD:</B>Nie wysłano żadnego pliku'; break;
}
exit;
}
[/php:1:5c0f5c04ec]
Problem polega na tym, że jeśli do formularza nie dodam żadnego zdjęcia, to wyświetlają się błędy, związene z tym, że zmienna zdjecie jest pusta, a przecież powinien się wyświetlić alert 'nie wysłano żadnego pliku'.
Widzicie jakieś błędy w kodzie, który podałem?
Aiker
26.12.2003, 21:51:14
No bo przeciez jak zmienna "Zdjecie" jest pusta
[php:1:03656134df]<?php
$zdjecie = $_FILES['zdjecie']['tmp_name'];
$zdjecie_size = $_FILES['zdjecie']['size'];
$zdjecie_type = $_FILES['zdjecie']['type'];
$zdjecie_error = $_FILES['zdjecie']['error'];
?>[/php:1:03656134df]
to te zmienne nie istniejeja bo nie zostaly podane
i wtedy instrujcja if nie jest wykonywana
Dodatkowy if zalatwil by sprawe:D
.dragonfly
26.12.2003, 21:51:24
Jesli chcesz sprawdzac czy zmienna nie jest pusta to daj $zmienna!="" , ablo czy wogole jest ustawiona przez isset()
kicaj
26.12.2003, 22:25:54
$_FILES['nazwa'] == "none" -> pusta
maciu
26.12.2003, 23:59:25
Cytat
No bo przeciez jak zmienna "Zdjecie" jest pusta
[php:1:84feed4eaf]<?php
$zdjecie = $_FILES['zdjecie']['tmp_name'];
$zdjecie_size = $_FILES['zdjecie']['size'];
$zdjecie_type = $_FILES['zdjecie']['type'];
$zdjecie_error = $_FILES['zdjecie']['error'];
?>[/php:1:84feed4eaf]
to te zmienne nie istniejeja bo nie zostaly podane
i wtedy instrujcja if nie jest wykonywana
Dodatkowy if zalatwil by sprawe:D
jeżeli dobrze zrozumiałem Twoje słowa, to po co w takim razie jest tablica $_FILES['zdjecie']['error']; skoro i tak mam wcześniej sprawdzić, czy zmienna nie jest pusta? Preceż to non sens
Cudi
27.12.2003, 01:26:54
Błędów nie ma, ścieżka do pliku była pusta. więc pewnie php nawet nie utworzyło miejsca w $_FILES dla tego pliku. Daj dodatkową instrukcje warunkową if:
[php:1:8d7ceaa776]<?php
if( isset( $_FILES['zdjecie'] )
{
// i tu cały kod
}
?>[/php:1:8d7ceaa776]
Aiker
27.12.2003, 10:15:59
Troszke zle sie wyrazilem poprostu jak nie podasz zmiennej w formularzu to wogule nie tworzy tych tablic &_FILES bo nie ma z czego czyli zmiene sa puste
maciu
27.12.2003, 10:59:46
kurcze, na localhoscie wszystko mi dobrze działa, a na serwerze warunek
[php:1:5521eaaf20]
if( isset( $_FILES['zdjecie'] )
{
// i tu cały kod
}
[/php:1:5521eaaf20]
nie działa gdy zmienna $zdjecie jest pusta. Domyślacie sięmoże i jakie ustawienia serwera może chodzić, że na jednym działa a na drugim nie?
Dodam że na localhoscie mam ustawione:
error_reporting = E_ALL & ~E_NOTICE
register_globals = Off
marcinkooter
18.01.2011, 13:58:41
tez mam ten problem
ciekawskiii
18.01.2011, 21:52:12
Sprawdzaj filesize albo nazwa pliku, jezeli filesize == 0 to blad albo jezeli nazwa pliku ma 0 znakow to blad
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.