[php][jQuery-ajax] Wysyłanie pliku ajax (jQuery)

0

Witam,

czy wie ktoś może jak wysłać plik (graficzny) za pośrednictwem ajax biblioteki jQuery?


//head z implementacją biblioteki jquery

<script type="text/javascript">
$('#target').click(function() {
$.ajax({
               type: 	"POST",
               url: 	"data2.php",
               beforeSend: function(html){
                                $("#info").html("Loading...");         
                            },
               success: function(html){
                                $("#info").html(html);         
                            },
               error:	function(html){
                                $("#info").html("bład");         
                            },
               complete:   function(html){
                                alert("zakończone");
                            }
             });

});

});
</script>

<form enctype="multipart/form-data" action="" id="" name="" class="" method="POST">

<input type="file" name="file" size="10">

<id="target">Click here</div>

</form>

0

ajax nie obsluguje wysylania plikow. do tej pory robiłem tak, ze w momencie "wyślij" tworzony jest iframe, do niego przekierowywany jest formularz, kiedy w odpowiedzi w iframe pojawiało się "ok" albo np. link do pliku, ramka była usuwana, adres pobierany i przekazywany dalej.

0

Czyli zostaje mi jQuery.post()

0

Albo jakiś Flashowy uploader.

0

ajax nie obsluguje wysylania plikow.
Nieprawda

0
thxgvbkj napisał(a)

ajax nie obsluguje wysylania plikow.
Nieprawda

Jak asynchronicznym zapytaniem chcesz przesłać plik, jak z poziomu JS nawet do value w input=file nie masz dostępu?

0
lukas_jg napisał(a)

Czyli zostaje mi jQuery.post()

$.POST() to tylko nakładka na $.ajax(), ktora jest nakładką na różne obiekty xml request w roznych przegladarkach...

0

Jak asynchronicznym zapytaniem chcesz przesłać plik, jak z poziomu JS nawet do value w input=file nie masz dostępu?

To jest chyba oczywiste, że użytkownik sam musi wybrać plik? Przeglądarka na nic innego nie pozwoli, ze względów bezpieczeństwa, ale to nie znaczy, że nie można przesyłać plików z wykorzystaniem ajax'a.

0

thxgvbkj> Jak to zrobić ? Masz przykład jakiś ?

0

Jak to zrobić ? Masz przykład jakiś ?
Dokładnie tak jak powiedział użytkownik uirapuru. Utworzenie tymczasowej ramki

Ogólnie wygląda to tak:

html:

<form method="post" target="ramkaPlikow" enctype="multipart/form-data" action="pliki.php">
  <input type=file name=plik />
  <input type=submit value=OK />
</form>

<iframe name="ramkaPlikow" src="" width=0 height=0 onload=""></iframe>

pliki.php:

// krótko:
print_r($_FILES);

1 użytkowników online, w tym zalogowanych: 0, gości: 1