TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
[szybka pomoc potrzebna] jQuery + formularz + ajax + php -> upload pliku , kubazzz 7/02/09 04:27 mam coś takiego
formularz z dwoma polami do uploadu plików,
<form action="#" method="post" id="formularz" enctype="multipart/form-data">
<input type="text" name="imie" id="imie" />
<input type="text" name="nazwisko" id="nazwisko" />
<input type="file" name="cv" id="cv" />
<input type="file" name="zdjecie" id="zdjecie" />
</form>
___
jQuery
$('a#wyslij_form').click(function(){
$.ajax({
method: "post",
url: "form_send.php",
data:
"form=send"+
"&f_imie=" + $("#imie").val() +
"&f_nazwisko=" + $("#nazwisko").val()
,
beforeSend: function(){
$('form').hide();
$('#srodek').append('Trwa wysyłanie formularza...<br/><img src="ajax_loader.gif" class="ajax_img" />');
},
complete: function(){
},
success: function(dane){
}
});
return false;
}
i teraz nie wiem jak sprzegnac ze soba jQuery [jak skonstruowac data string dla ajaxa] i jak to złapać w PHP potem..
Ogólne metody obsługi plików w PHP znam i mam wszystko zrobione, ino dla wariantu z klikaniem w submit w formularzu, bez ajax'a..
jak zrobić, żeby po takim wysłaniu w PHP móc operować na zmiennej $_FILES, w tym wypadku
$_FILES['cv']['name'] / $_FILES['zdjecie']['name'] itdSM-S908 - Wyślij plik , Mikar 7/02/09 08:53
do schowanego, niewidocznego IFRAME poprzez submit. Tam obsłuż plik i uruchom kod JS okna rodzica jak skończysz który odświeży Ci liste wysłanych plikówE8400, 4GB, 320+1500 GB, R6870,
Chieftec CX05B-B, Nec 20wgx2pro, Xonar DX - Osobiście także polecam iframea , Conroy 7/02/09 11:06
Bo trochę mniej pisania, bo bez pluginu, bo wydaje mi się bardziej przejrzysty i chyba koronne, bo już tak robiłem :)
@kubazzz
No i co z tą współpracą, nie odezwałeś się w końcu?http://flickr.com/photos/myhacien
da - No jak to?!?! Przecież jajfrejmy są passe i ogólnie sakzzz! , Mcmumin 7/02/09 11:39
Przeczytaj post wyżej, wg argumentacji pana Lamera z MS jak używasz sakerskich metod / rozwiązań, to Ci nikt zdjęcia nie zaplołduje i użyszkodnicy do konkurencji uciekną!!!
- Heh, ale lubisz komplikować sobie życie.... , Mcmumin 7/02/09 10:33
Metoda 3 kroków.
Step łan:
Przygotowujemy formularz:
<script type="text/javascript" src="./js/jquery-1.2.6.pack.js"></script>
<script type="text/javascript" src="./js/jquery.validate.js"></script>
<script type="text/javascript" src="./js/jquery.form.js"></script>
<script type="text/javascript" src="./js/jquery.MultiFile.pack.js" language="javascript"></script> (sic !!!!)
<form id="formularz" method="POST" enctype="multipart/form-data" action="./action/check_out.php">
<label for="file">Załaczniki:</label>
<input class="file" type="file" name="file[]" /><br />
<br />
<input class="submit" type="submit" value="Wyślij"/>
</form>
Step tu:
konfiguracja pluginu MultipleFile w jQuery:
$(".file").MultiFile({
accept:'gif|jpg|jpeg|png|doc|txt|xls|cvs|png|pdf|GIF|JPG|JPEG|PNG|DOC|TXT|XLS|CVS|PNG|PDF', max:3, STRING: {
remove:'Usuń',
selected:'Wybrane: $file',
denied:'Nieakceptowalny typ załącznika $ext!',
duplicate:'Ten plik został już dołączony:\n$file!'}
});
Step frii:
chceck_out.php
foreach ($_FILES["file"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK)
{
$tmp_name = $_FILES["file"]["tmp_name"][$key];
$name = $_FILES["file"]["name"][$key];
move_uploaded_file($tmp_name, "../upload/$name");
$mail->AddAttachment($tmp_name, $name);
}
}
I wszystko ślicznie bangla. Jeśli wolisz spłodzić coś samodzielnie, to również polecam pluginy validate i form. Akcję formularza ustawiasz na plik php np taki:
<?php
$dir = 'uploads';
echo upload_process($dir);
function upload_process($dir) {
$file = current($_FILES); // we handle the only file in time
if($file['error'] == UPLOAD_ERR_OK) {
if(@move_uploaded_file($file['tmp_name'], "{$dir}/{$file[name]}"))
$file['error'] = ''; //no errors, 0 - is our error code for 'moving error'
}
$arr = array(
'error' => $file['error'],
'file' => "{$dir}/{$file[name]}",
'tmpfile' => $file['tmp_name'],
'size' => $file['size']
);
if(function_exists('json_encode'))
return json_encode($arr);
$result = array();
foreach($arr as $key => $val) {
$val = (is_bool($val)) ? ($val ? 'true' : 'false') : $val;
$result[] = "'{$key}':'{$val}'";
}
return '{' . implode(',', $result) . '}';
}
?>- PS - No i nie zapomnij o uprawnieniach dostępu do katalogu , Mcmumin 7/02/09 10:35
na serwerze :)- kurcze, Ty mi dajesz ZŁE rozwiązania:) , kubazzz 8/02/09 23:44
złe w sensie, nie tego potrzebuje.
Ja pytam o banalną rzecz i nie mam zamiaru w tym wypadku używać tych pluginów. po prostu nie mogę:) [poza tym w ten sposób dalej bym nie rozumiał jak to działa i niewiele bym się nauczył]
I dalej nie wiem czemu mi nie działa to co mi nie działa, nei wgrywa pliku na serwer, nawet nie próbuje.SM-S908
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|