2015-07-14 9 views
6

mam pole wejściowe:

<input type="file" id="inputID" name="file"> 

Po kliknięciu przycisku do przedłożenia funkcją JavaScript będzie działał (URL: upload.php). Muszę być w stanie uzyskać dostęp $_FILES["inputID"]["tmp_name"] z tym polu tak, że można go używać na upload.php jak,

move_uploaded_file($_FILES["inputID"]["tmp_name"], $target_file) 

Czy to możliwe?
W tej chwili pojawia się błąd:

Notice: Undefined index: inputID

Każda pomoc będzie bardzo mile widziane.

Dziękuję bardzo! :-)

+1

Jeśli twoja nazwa "" to "plik", potrzebujesz '$ _FILES [" plik "] [" nazwa_tmp "] w PHP, a ponieważ jest to na serwerze, nie możesz uzyskać do niego dostępu z JavaScript. –

+1

Nie jest to możliwe, chyba że przechowujesz tę wartość za pomocą php w innym miejscu, a następnie wywołasz zapytanie ajax, aby uzyskać informacje. –

+0

dzięki wam obojgu! – Mary

Odpowiedz

0

masz do niego dostęp po przedłożeniu, chociaż nie widzę, dlaczego należy:

<?php 
... 
$tmpname=$_FILES["file"]["tmp_name"] 
... 
?> 
... 
<script> 
var tmpname = <?=$tmpname?> 
... 
</script> 
... 

nie jestem jasne, co chce zrobić. Jeśli chcesz mieć jakąś funkcję ładowania ajaxa Lepiej użyć biblioteki js.

+0

Ta metoda zakłada, że ​​najpierw prześlesz formularz z wybranym plikiem. Następnie ponownie renderujesz formularz, wyświetlając nazwę tmp obsługiwaną przez PHP. Jednak nawet jeśli rzeczywiście uzyskasz dostęp do niego za pomocą JavaScript, nazwa tmp zmieni się przy każdym nowym żądaniu HTTP, więc nie możesz na nim polegać, aby ponownie połączyć się z serwerem. –

+0

Zgadzam się, że jest to bezużyteczne, ale mimo to jest dostępne. – sivann

+0

Ściśle mówiąc, myślę, że tak. Ale jak mówisz, nie widzę żadnej użyteczności używania tego :) –

3

move_uploaded_file() to funkcja php, działająca na opartej na PHP aplikacji serwerowej.

Jest obsługiwany przez PHP po przesłaniu formularza.

Nie można uzyskać do niego dostępu z kodu JavaScript przed jego wysłaniem, niezależnie od tego, jaki byłby sposób jego przesłania, zarówno asynchronicznie z żądaniem XHR, jak i bezpośrednio przesyłając formularz do jego trasy obsługi.

Powiązane problemy