![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 9.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Dopiero zaczynam przygodę z PHP, więc proszę o wyrozumiałość ![]() Postanowiłem zrobić formularz z załącznikami. Poprzeglądałem różne fora, tutoriale itd., i stworzyłem dosć prosty formularz, którym ma być wysyłany wraz z załącznikami. I tu pojawia się problem, gdyż z jednym załącznikiem nie ma problemu. Niestety, gdy dokładam kolejne nie wysyłają się (poza tym jednym) :/ Proszę o pomoc. Fragment kodu html (formularz): $plik_nazwa_oryginalna = $_FILES["plik1"]["name"]; $plik_wielkosc = $_FILES["plik1"]["size"]; { $tresc .="--___$znacznik==n"; $tresc .="Content-Type: image/gifn"; $tresc .="Content-Disposition: attachment;n"; $tresc .=" filename="$plik_nazwa_oryginalna"n"; $tresc .="Content-Transfer-Encoding: base64nn"; $tresc .="--___$znacznik==--n"; } // nagłówki i obsługa załącznika $plik_nazwa_tmp = $_FILES["plik2"]["tmp_name"]; $plik_nazwa_oryginalna = $_FILES["plik2"]["name"]; $plik_wielkosc = $_FILES["plik2"]["size"]; { $tresc .="--___$znacznik==n"; $tresc .="Content-Type: image/gifn"; $tresc .="Content-Disposition: attachment;n"; $tresc .=" filename="$plik_nazwa_oryginalna"n"; $tresc .="Content-Transfer-Encoding: base64nn"; $tresc .="--___$znacznik==--n"; } // nagłówki i obsługa załącznika $plik_nazwa_tmp = $_FILES["plik3"]["tmp_name"]; $plik_nazwa_oryginalna = $_FILES["plik3"]["name"]; $plik_wielkosc = $_FILES["plik3"]["size"]; { $tresc .="--___$znacznik==n"; $tresc .="Content-Type: image/gifn"; $tresc .="Content-Disposition: attachment;n"; $tresc .=" filename="$plik_nazwa_oryginalna"n"; $tresc .="Content-Transfer-Encoding: base64nn"; $tresc .="--___$znacznik==--n"; } // wysłanie listu { } else { print "E-mail NIE został wysłany poprawnie. <br>Prosimy o <a href="java script:history.back();">powrót</a> i wysłanie e-maila ponownie."; } } ?> [/list] [PHP] Kod <INPUT type="file" name="plik1[]" style="font-size: 10px; height: 18px;vcolor: #FFFFFF; background-color: #666666"> Niestety nie wiem czy dobrze kombinowałem. Nie bardzo wiem jak odnieść się później do takiej tablicy w php. Wszelkie próby kończyły się na tym, że załączniki nie były wysyłane w ogóle. Z góry dziękuję za pomoc. Ten post edytował erix 9.02.2009, 20:02:07 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat $_FILES jest typu tablicowego, więc próbowałem zrobić coś takiego w html (dla każdego pola dodawania załacznika): Gdzieś dzwoni, tylko nie wiesz, w którym kościele. ![]() Jeśli stworzysz tablicę z elementów formularza, to wtedy zwyczajnie iterujesz po nich, jak po tablicy:
$v będzie reprezentowało wówczas pojedynczy plik. Teraz wystarczy przenoszenie, itp. wrzucić w pętlę i voilá. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 9.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Qrcze...brakuje mi trochę podstaw. Zagmatwałem się i teraz w ogóle załączników nie wysyła
![]() Czyli kod w html ma wyglądać następująco: Kod <INPUT type="file" name="plik1[]" style="font-size: 10px; height: 18px;vcolor: #FFFFFF; background-color: #666666"> ![]() A plik wyslij.php wygląda teraz tak: Kod foreach($_FILES as $k=>$v){ // nagłówki i obsługa załącznika $plik_nazwa_tmp = $_FILES["plik1".$v]["tmp_name"]; $plik_nazwa_oryginalna = $_FILES["plik1".$v]["name"]; $plik_wielkosc = $_FILES["plik1".$v]["size"]; if (is_uploaded_file($plik_nazwa_tmp)) { $tresc .="--___$znacznik==\n"; $tresc .="Content-Type: image/gif\n"; $tresc .="Content-Disposition: attachment;\n"; $tresc .=" filename=\"$plik_nazwa_oryginalna\"\n"; $tresc .="Content-Transfer-Encoding: base64\n\n"; $f = fopen($plik_nazwa_tmp,"rb"); $dane = fread($f,filesize($plik_nazwa_tmp)); fclose($f); $tresc .= chunk_split(base64_encode($dane)); $tresc .="--___$znacznik==--\n"; } } Oczywiście nie działa :/ Coś qrcze robię nie tak. Jakiś bubel mi wyszedł. Przepraszam za moją niewiedzę. Chyba porwałem się na zbyt trudną rzecz jak na początek. Może jednak ktos mi to rozpisze. Z góry dziękuję za pomoc ![]() Ten post edytował amstaff 10.02.2009, 15:48:30 |
|
|
![]()
Post
#4
|
||
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
$plik_nazwa_oryginalna = $_FILES["plik1".$v]["name"]; $plik_wielkosc = $_FILES["plik1".$v]["size"]; ?> [/list] [PHP] = $v["tmp_name"]; $plik_nazwa_oryginalna = $v["name"]; $plik_wielkosc = $v["size"]; ?> [/list] [PHP] mp = $v["tmp_name"]; $plik_nazwa_oryginalna = $v["name"]; $plik_wielkosc = $v["size"]; ?> [/list] |
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 9.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam tak:
Kod foreach($_FILES as $k=>$v){ // nagłówki i obsługa załącznika $plik_nazwa_tmp = $v["tmp_name"]; $plik_nazwa_oryginalna = $v["name"]; $plik_wielkosc = $v["size"]; if (is_uploaded_file($plik_nazwa_tmp)) { $tresc .="--___$znacznik==\n"; $tresc .="Content-Type: image/gif\n"; $tresc .="Content-Disposition: attachment;\n"; $tresc .=" filename=\"$plik_nazwa_oryginalna\"\n"; $tresc .="Content-Transfer-Encoding: base64\n\n"; $f = fopen($plik_nazwa_tmp,"rb"); $dane = fread($f,filesize($plik_nazwa_tmp)); fclose($f); $tresc .= chunk_split(base64_encode($dane)); $tresc .="--___$znacznik==--\n"; } } i nadal nie wysyła... ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
To popróbuj var_dump" title="Zobacz w manualu PHP" target="_manual na poszczególne zmienne, radź sobie trochę...
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 06:45 |