2015-07-14 12 views
6

Ho un campo di inserimento:

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

Quando un tasto è scattato a presentare, una funzione JavaScript verrà eseguito (url: upload.php). Ho bisogno di essere in grado di accedere $_FILES["inputID"]["tmp_name"] da questo campo di input in modo che potessi utilizzarlo su upload.php come,

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

è possibile?
Al momento, ottengo un errore:

Notice: Undefined index: inputID

Qualsiasi aiuto sarebbe molto apprezzato.

Grazie mille! :-)

+1

Se il tuo '' nome è 'file', allora avete bisogno di' $ _FILES ["file"] ["tmp_name"] 'in PHP, e dal momento che è sul server non potete accedervi da JavaScript. –

+1

Non è possibile, a meno che non si memorizzi quel valore con php in qualche luogo e si faccia una richiesta ajax in seguito per ottenere le informazioni. –

+0

grazie a tutti e due! – Mary

risposta

0

è possibile accedervi dalla sua presentazione, anche se non vedo il motivo per cui si dovrebbe:

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

Io non sono chiare su ciò che si sta cercando di fare. Se vuoi alcune funzionalità di caricamento Ajax È meglio usare una libreria js.

+0

Questo metodo presuppone innanzitutto di inviare il modulo con il file selezionato. Quindi si esegue nuovamente il rendering del modulo, visualizzando il nome_tmp gestito da PHP. Tuttavia, anche se lo si accede effettivamente con JavaScript, il nome_tmp cambierà in qualsiasi nuova richiesta HTTP, quindi non si può fare affidamento su di esso per chiamare nuovamente il server. –

+0

Sono d'accordo che è inutile, ma è comunque accessibile. – sivann

+0

Strettamente parlando, credo di si. Ma come dici tu, non vedo alcuna utilità di usarlo :) –

3

move_uploaded_file() è una funzione di php, in esecuzione su un'applicazione lato server basata su PHP.

Viene gestito da PHP quando il modulo è stato inviato.

Non è possibile accedervi da JavaScript prima che sia stato inviato, qualunque sia il modo in cui lo si inoltra, sia in modo asincrono con una richiesta XHR, sia inviando direttamente il modulo alla propria route di gestore.

Problemi correlati