2012-06-14 4 views
12

Ho bisogno di aiuto con il mio modulo. C'è un mix di input, textarea e upload di file che voglio inserire nel database ..Come risolvere <form> che include il caricamento di file e altro input di testo, nella stessa pagina

Cosa devo usare nel? Faccio a utilizzare la normale attributo form:

<form action="" method=""> 

o

<form enctype="" action="" method=""> 

Si prega di avere in mente che, devo fare questo in una sola pagina, e l'upload delle immagini deve essere fatto insieme ad altri l'immissione di testo.

Grazie per il vostro tempo.

+1

Buona lettura: http://www.php.net/manual /en/features.file-upload.post-method.php – j08691

+0

Prima di utilizzare una funzione della lingua, è necessario eseguire alcune operazioni di base. Per esempio. sai già come farlo con HTML e PHP? In caso contrario, perché non leggere la sezione corrispondente nel manuale PHP?--- possibile duplicato di [Perché non usare sempre enctype = "multipart/form-data"?] (http://stackoverflow.com/questions/1039166/why-not-always-use-enctype-multipart-form-data) – hakre

+0

@hakre ... Ho fatto diverse forme, ma questa era un'eccezione. –

risposta

11

È necessario utilizzare enctype="multipart/form-data" per il caricamento di file, anche questo funzionerà correttamente per i moduli di caricamento non di file.

In genere uso questa dichiarazione per tutti i miei moduli, indipendentemente dal fatto che abbiano o meno input di file.

3
<form enctype="multipart/form-data" action="yourpage.php" method="post"> 

È necessario l'attributo se si desidera che il caricamento del file funzioni. Cordiali saluti, un modulo può contenere ogni tipo di campo, inclusi i caricamenti di file, e funziona bene.

4

È necessario impostare enctype="multipart/form-data" e utilizzare method="post" per qualsiasi modulo che include un input di file. Questo non ti impedirà di includere altri tipi di campi.

(Il modo in cui quei campi verranno inviati al server cambierà, ma la libreria di analisi dei moduli tratterà automaticamente le differenze, è necessario preoccuparsi solo di esse se si sta analizzando l'input raw da soli).

3

<form enctype="multipart/form-data" method="post" action="submit.php">

submit.php essere, in questo caso, lo script PHP esterna che elaborerà il modulo (se si decide di utilizzare PHP). Ma puoi chiamare lo script .php come preferisci (, ad esempiocats.php).

I dati file/immagine caricati verranno archiviati all'interno di $_FILES e tutti i campi di testo, area di testo, pulsanti di opzione, caselle di controllo e altri dati risiederanno all'interno del superglobale $_POST.

Quando submit.php riceve il modulo inviato è possibile eseguire tutti i tipi di elaborazione su di esso, ad esempio la convalida che l'utente ha inviato il tipo corretto di file/immagine, memorizzare il percorso del file/immagine nel database locale (client/basato su server o file system) e molto altro.

Assicurarsi di convalidare il lato client di input utente e il lato server.

0

in ASP classico ho dovuto accedere al mio campo di testo come load.getFileData("textfield") invece dello standard Request("textfield") quando si utilizza l'enctype = "multipart/form-data"