come recuperare il path di un file su disco locale

marybeth74

Nuovo Utente
25 Gen 2012
3
0
0
Sto' cercando di memorizzare il percorso e nome di un file in un database come stringa per usarlo sucessivamente come attachment di una mail.
Ho provato con :
File nomefile.html
[...]
<form name='nomefile' action='memfile.php' method='post' enctype='multipart/form-data'>
<input type='file' name='nomefile' value''/>
</form>
[...]

nel file: memfile.php

$prova=$_FILES['nomefile']['name'];

Che poi provo a memorizzare. Ma il path non sono riuscita a "trovarlo".

Inoltre non capisco cosa sbaglio ma ...
Memorizzo in un Array globale il valore di $prova
Quando chiudo la finestra "modale" nella quale inserisco i dati perdo il valore.
Uso la stessa finestra (greybox per chi la conosce) con la stessa procedura per memorizzare vari dati sempre nello stesso array (almeno una trentina) e non ho problemi.
Solo con questo valore mi vedo azzerare il nome del file (unica cosa che trovo).

Se avete dei suggerimenti anche solo un'ipotesi ....

Grazie
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
L'upload di file funziona in questo modo: lo script copia automaticamente il file che riceve nel percorso $_FILES['file']['tmp_name'], dandogli un nome casuale e nessuna estensione. Sta poi a te spostare il file in un modo simile a questo:
PHP:
move_uploaded_file($_FILES['file']['tmp_name'], '/path/file/caricati/'. $_FILES['file']['name']);
E sarà quel nuovo percorso che salverai nel database per allegarlo alla mail.
 

marybeth74

Nuovo Utente
25 Gen 2012
3
0
0
L'upload di file funziona in questo modo: lo script copia automaticamente il file che riceve nel percorso $_FILES['file']['tmp_name'], dandogli un nome casuale e nessuna estensione. Sta poi a te spostare il file in un modo simile a questo:
PHP:
move_uploaded_file($_FILES['file']['tmp_name'], '/path/file/caricati/'. $_FILES['file']['name']);
E sarà quel nuovo percorso che salverai nel database per allegarlo alla mail.

Mi rendo conto che l'uso che vorrei fare di <input type=file > è improprio e "non conforme".
Quando ho scoperto questa strada ho pensato che poteva essere una soluzione "di ripiego" rispetto all'idea originale.
Insomma: se proprio non trovo altro ... mi accontento sniff sniff

Però, siccome mi piace andare oltre insisto!
Ho un form dove l'utente mette dei dati che non invia immediatamente ma salva in un database e invia in maniera definitiva quando ha concluso la raccolta delle informazioni. Ed è questa elasticità a crearmi problemi.
Dovendo aspettare che decida di inviare i dati in maniera definitiva e volendo lasciare all'utente la possibilità di inserire quello che già conosce e di modificare tutte le informazioni nuove e già inserite quante volte gli aggrada, mi sembra più semplice e "risparmioso" memorizzare il path e il nome del file. Non vorrei memorizzare il file.
Questo perchè l'utente oggi mette un file (in tutto sono 7 file diversi da inserire e non tutti obbligatori) ma tra dieci minuti potrebbe decidere di cambiali tutti e segnalarne dei nuovi.
Mi dava l'idea che memorizzando la sola stringa da usare all'invio definitivo per prendere il file fosse la meno dispendiosa in termini di risorse e di rete. Poi avro' il problema che se l'utente ha spostato o cancellato o altro il file dovrò essere pronta a bacchettargli le manine :) ma lì sono parecchio brava (leggi sadica).

Tra l'altro mi irrita il fatto che nella casella <input type=file> a schermo appare il percorso completo e lo si può leggere e anche selezionare e copiare. Insomma c'è, è lì a portata di zampa ...
Ho trovato qualcuno che suggeriva di inserire in un onchange il trasferimento del value in un campo hidden come da esempio:

<input type="file" name="mioFile" onchange="this.form.pathCompleto.value=this.value;">
<input type="hidden" name="pathCompleto">

Ma io non sono riuscita a farlo funzionare. Molto probabile che sbagli qualcosa: this.form ad esempio o altro.
Tra l'altro leggevo che value è una proprietà un po' particolare di <input type=file>, non si può cambiare ne impostare di default e forse non si può nemmeno prendere con un onchange()???????

Grazie per qualsiasi tipo di aiuto-suggerimento-spiegazione.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Sì, ho capito cosa vuoi fare, ma non puoi per il semplice motivo che, una volta che l'utente ha selezionato il file da caricare, esso viene inviato al server e basta: è impossibile recuperare il percorso completo per salvarlo, puoi avere solo il nome del file. Ammesso anche che fosse possibile, non risolverebbe comunque il tuo problema, perché non avresti accesso all'hard disk dell'utente e quindi non avresti modo di eseguire il trasferimento alla fine della raccolta informazioni.
 

marybeth74

Nuovo Utente
25 Gen 2012
3
0
0
Mi arrendo :incazz2:
Ogni browser (explorer, firefox, opera) mi ha dato risultati diversi e anche la stringa c:\fakepath.

E questo è quanto ho trovato in rete come spiegazione del mancato recupero del percorso:
"According to the specifications of HTML5, a file upload control should not reveal the real local path to the file you have selected, if you manipulate its value string with JavaScript. Instead, the string that is returned by the script, which handles the file information is c:\fakepath.
This requirement is already implemented in Internet Explorer 8 – the real path to the file will be shown only if the page that contains the control is added to the trusted sites collection of the browser."

Se le specifiche di HTML5 sono contro di me allora mollo la presa.

Scherzo :p:p
Procedo invece come consigliatomi

Grazie a tutti.
 
Discussioni simili
Autore Titolo Forum Risposte Data
P Access: recuperare Indice dopo un insert into MS Access 0
M recuperare credenziali di rete Reti LAN e Wireless 0
M Come recuperare molteplici input form PHP 1
A recuperare i dati passati nel post PHP 1
A recuperare data creazione di un file PHP 6
R Scorporare array e recuperare record tabella PHP 10
M Recuperare valore PHP 5
A [WordPress] Recuperare testo articoli da sito danneggiato WordPress 1
M [PHP] Recuperare coppia con valori i valori MAX e coppia con valori MIN PHP 26
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
M Recuperare ID e usarlo in funzione jQuery 2
S [WordPress] Recuperare l'url immagini in evidenza WordPress 0
S [PHP] recuperare determinato elemento con lo scraping PHP 1
A [PHP] Recuperare indice per inserirlo in un'altra tabella PHP 4
P [PHP] Recuperare dati da una <select> PHP 4
S [PHP] recuperare dato da una tabella PHP 4
N [PHP] recuperare dati da db PHP 4
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
F Recuperare dati json con php PHP 2
F Recuperare una stringa in formato json con php PHP 0
G Recuperare dato caricato dinamicamente jQuery 2
S recuperare un dato da una tabella mysql per inserirlo in una casella di input jQuery 3
S recuperare il valore di un campo input cliccando sul relativo dato di una tabella jQuery 0
Metazoo Recuperare variabile php da javascript senza aggiornare pagina PHP 5
S [PHP] Recuperare dato esatto tabella PHP 16
M Come recuperare valori della riga di una tabella creata dinamicamente da un file esterno? Javascript 11
M Recuperare id e nome utente loggato PHP 0
D E-Commerce Recuperare dati da un sito E-Commerce 3
M Recuperare valore array Classic ASP 0
elpirata Recuperare i dati in una select PHP 5
Nik Recuperare ultimo ID inserito PHP 2
Devil-94 Recuperare il valore di un attributo del div tramite ajax. Ajax 3
Devil-94 Recuperare contenuto div Ajax 5
I recuperare testo da una pagina web html Ajax 2
M Recuperare valori da form PHP 2
IImanuII Salvare/recuperare html da un db PHP 5
filippino Recuperare i contenuti di un sito penalizzato SEO e Posizionamento 1
felino [Windows XP] Recuperare file in Word cancellato Windows e Software 4
Violetta De Amicis Recuperare la stringa di un ipertesto con javascript Javascript 1
G JQUERY recuperare il testo selezionato su un paragrafo jQuery 1
M Recuperare dati checkbox in diverse pagine PHP 1
Marcolotto Recuperare data e orario corrente in app Android Sviluppo app per Android 1
Marcolotto Recuperare i crash-data della mia app Android Sviluppo app per Android 1
J Recuperare variabili da php a java Javascript 2
felino Recuperare i livelli (photoshop) da un file JPG Photoshop 5
P [RISOLTO]recuperare dati da tabella jQuery 4
L [risolto] recuperare il nome dell'ultimo file caricato in una cartella PHP 2
F Recuperare file da un database PHP 6
A Funzione unica per prendere e recuperare valori Javascript 0
C Come recuperare file Sicurezza e Virus 3

Discussioni simili