Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » dida 21:31
 » DJopek 21:31
 » leon 21:29
 » rad 21:28
 » KaszeL 21:28
 » Soulburne 21:26
 » P@blo 21:24
 » b0b3r 21:19
 » elliot_pl 21:09
 » Shark20 21:08
 » Sherif 21:06
 » g5mark 21:03
 » ThY 21:02
 » Ramen 21:02
 » bajbusek 20:56
 » Fasola 20:54
 » wrrr 20:53
 » Wedrowiec 20:50
 » @GUTEK@ 20:50
 » XepeR 20:47

 Dzisiaj przeczytano
 41115 postów,
 wczoraj 25974

 Szybkie ładowanie
 jest:
włączone.

 
ccc
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'] itd

SM-S908

  1. 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ów

    E8400, 4GB, 320+1500 GB, R6870,
    Chieftec CX05B-B, Nec 20wgx2pro, Xonar DX

    1. 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

      1. 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ą!!!

  2. 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&#322;aczniki:</label>
    <input class="file" type="file" name="file[]" /><br />
    <br />
    <input class="submit" type="submit" value="Wy&#347;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&#324;',
    selected:'Wybrane: $file',
    denied:'Nieakceptowalny typ za&#322;&#261;cznika $ext!',
    duplicate:'Ten plik zosta&#322; ju&#380; do&#322;&#261;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) . '}';
    }
    ?>

    1. PS - No i nie zapomnij o uprawnieniach dostępu do katalogu , Mcmumin 7/02/09 10:35
      na serwerze :)

      1. 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