Inserire in un textbox il nome del file da uploadare

neo996sps

Utente Attivo
31 Mag 2007
247
0
0
Trentino
Ciao a tutti,

ho un form con due campi: uno di tipo file che chiamo fileup e uno di tipo text che chiamo titolo.

Io vorrei inserire nel campo titolo il valore di fileup. Per fare questo ho modificato il tutto così:

PHP:
<form enctype="multipart/form-data" id="aggiungi_delibera" name="aggiungi_delibera" method="post" action="./salva_delibera.php">
<table class='tabella_3'>

<tr>
<td class="cella_corpo"><label for="data">Data</label></td>
<td class="cella_corpo"><input type="text" id="data" name="data" size="20" tabindex="1" value="<?php print(date("d.m.Y"));?>"/></td>
</tr>

<tr>
<td class="cella_corpo"><label for="categoria">Categoria</label></td>
<td class="cella_corpo">
 <select name="categoria_delibera" tabindex="2">
					  <option value="0" selected>Selezionare la cetegoria</option>
            <option value="1">Delibere di Consiglio</option>
            <option value="2">Delibere di Giunta</option>
            <option value="3">Elenco determinazioni</option>
            <option value="4">Ordinanze</option>
            <option value="5">Bilancio di previsione</option>
            <option value="6">Incarichi</option>
            <option value="7">Albo dei beneficiari</option> 
            </select>
</td>
</tr>

<tr>
<td class="cella_corpo"><label for="fileup">Allegato</label></td>
<td class="cella_corpo"><input type="file" id="fileup" name="fileup" size="40" tabindex="4"/></td>
</tr>
<?php 
$nomedocumento = $_POST["fileup"];

?>
<tr>
<td class="cella_corpo"><label for="titolo">Titolo</label></td>
<td class="cella_corpo"><input type="text" id="titolo" name="titolo" size="40" tabindex="3" value="<?php print($nomedocumento); ?>"/></td>
</tr>

</table>

<br />
<input type="button" id="salva" name="salva" title="salva" value="Salva" tabindex="5" onClick="javascript:controllo();" />
</form>
però una volta selezionato il file non mi viene aggiornato il campo testo. Come posso risolvere?
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
23
Roma
alessandro1997.netsons.org
Ovvio che non ti viene aggiornato, PHP è un linguaggio che lavora solo quando viene caricata la pagina, non durante le operazioni. Questo significa che lui assegna al campo il valore iniziale di fileup, cioè niente. Puoi usare Javascript, così:
HTML:
<form enctype="multipart/form-data" id="aggiungi_delibera" name="aggiungi_delibera" method="post" action="./salva_delibera.php">
<table class='tabella_3'>

<tr>
<td class="cella_corpo"><label for="data">Data</label></td>
<td class="cella_corpo"><input type="text" id="data" name="data" size="20" tabindex="1" value="<?php print(date("d.m.Y"));?>"/></td>
</tr>

<tr>
<td class="cella_corpo"><label for="categoria">Categoria</label></td>
<td class="cella_corpo">
 <select name="categoria_delibera" tabindex="2">
                      <option value="0" selected>Selezionare la cetegoria</option>
            <option value="1">Delibere di Consiglio</option>
            <option value="2">Delibere di Giunta</option>
            <option value="3">Elenco determinazioni</option>
            <option value="4">Ordinanze</option>
            <option value="5">Bilancio di previsione</option>
            <option value="6">Incarichi</option>
            <option value="7">Albo dei beneficiari</option> 
            </select>
</td>
</tr>

<tr>
<td class="cella_corpo"><label for="fileup">Allegato</label></td>
<td class="cella_corpo"><input type="file" id="fileup" name="fileup" size="40" tabindex="4" onchange="aggiungi_delibera.titolo.value = this.value;"/></td>
</tr>
<tr>
<td class="cella_corpo"><label for="titolo">Titolo</label></td>
<td class="cella_corpo"><input type="text" id="titolo" name="titolo" size="40" tabindex="3" /></td>
</tr>

</table>

<br />
<input type="button" id="salva" name="salva" title="salva" value="Salva" tabindex="5" onClick="javascript:controllo();" />
</form>
Però non sono sicuro che funzioni anche con i campi di tipo file che, se non sbaglio, non prevedono l'attributo value.
 

neo996sps

Utente Attivo
31 Mag 2007
247
0
0
Trentino
MITICO! Fa quasi quello che voglio io... adesso mi sbatto un attimo e cerco di non far mettere l'estensione del file

GRAZIE!!!!!!!!!!!
 

neo996sps

Utente Attivo
31 Mag 2007
247
0
0
Trentino
adesso stò smadonnando per far inserire solo il nome del file senza l'estensione. Credo che inserendo il valore ricavato da fileup in una variabile PHP e poi esplodendola in un vettore dovrei riuscire a eliminare il punto e l'estensione.
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
prova così, se hai almeno PHP 5.2.0:
PHP:
<?php
$nome = pathinfo($nomedocumento);
echo $nome['filename'];  
?>
 

neo996sps

Utente Attivo
31 Mag 2007
247
0
0
Trentino
ho risolto in un'altra maniera, quando clicco sul pulsante incaricato del submit, nel file salva_delibera.php ho agiunto questa parte di codice:

PHP:
$docexplode = explode ('.',$_POST["titolo"]);
$docfinale = $docexplode[0];
e ho dato in pasto alla query il valore $docfinale.

Non sarà elegante però va che è un piacere