- Home
- Categorie
- Coding e Sistemistica
- PHP
- Passaggio $_FILES fra piu' pagine
-
Passaggio $_FILES fra piu' pagine
Ciao a Tutti.
Ho la seguente situazione che non riesco a risolvere.
Devo fare un upload di un'immagine in un database mysql, fin qui nessun problema. La difficolta' nasce dal fatto che ho 3 pagine da gestire:- pag1.php per inserimento dati e scelta del file da caricare lato client nel campo "userfile", con form che punta a pag2.php
- pag2.php per controllo e conferma dati da parte dell'utente con form che punta a pag3.php
- pag3.php che e' la pagina di upload vera e propria con messaggio di successo od errore caricamento file.
Succede che non riesco a recuperare e gestire nella pag3.php la variabile $_FILES, che contiene l'array del file che l'utente vuole caricare, presente nella pag2.php. Ho provato a creare dei campi nascosti nella pag2.php, ognuno con value uguale a:
$_FILES["userfile"]["name"];
$_FILES["userfile"]["type"];
$_FILES["userfile"];
$_FILES["userfile"]["tmp_name"];per passare e poi recuperare il valore con $_POST, ma niente da fare. Se faccio in pag3.php un echo delle variabili vedo il contenuto ma lo script di pag3.php non me lo gestisce.
Questo e' il codice della pag3.php
<?php
include_once ($_SERVER["DOCUMENT_ROOT"]."/div/util/util_db.php");
include_once ($_SERVER["DOCUMENT_ROOT"]."/div/Connessioni/conn_badge.php");$nome = $_POST["nome"];
$cognome = $_POST["cognome"];
$mansione = $_POST["mansione"];
$societa = $_POST["societa"];
$qualifica = $_POST["qualifica"];
$progressivo = $_POST["progressivo"];$userfile = $_POST["userfile"];
$userfilenome = $_POST["userfilenome"];
$userfiletipo = $_POST["userfiletipo"];
$userfilesize = $_POST["userfilesize"];
$userfiletmp = $_POST["userfiletmp"];$fileName = $userfilenome;
$tmpName = $userfiletmp;
$fileSize = $userfilesize;
$fileType = $userfiletipo;$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}$query = "INSERT INTO tbadge (sede, nome, cognome, mansione, societa, foto, name, type, size, inizialequalifica, progressivobadge) VALUES ('".$siglaSede."', '".$nome."', '".$cognome."', '".$mansione."', '".$societa."', '".$content."', '".$userfilenome."', '".$userfiletipo."', '".$userfilesize."', '".$qualifica."', '".$progressivo."')";
mysql_query($query) or die('Error, query failed');
echo "<br>File $fileName uploaded<br>";
?>
Questi sono gli errori:
Warning: fopen(/var/tmp/phplcaWtj): failed to open stream: No such file or directory
Warning: filesize(): Stat failed for /var/tmp/phplcaWtj (errno=2 - No such file or directory)
Warning: fread(): supplied argument is not a valid stream resource
Warning: fclose(): supplied argument is not a valid stream resource
Spero di essere stato sufficientemente chiaro.
-
dice che non trova i files.. controlla bene
-
@Skyline said:
dice che non trova i files.. controlla bene
Grazie della risposta.
In effetti pare che il problema sia proprio quello.
Ho risolto cosi': attraverso la seconda pagina ho "appoggiato" il file dell'immagine in una directory creata ad hoc e poi lo vado a riprendere nella terza pagina attraverso la quale, una volta ripreso e caricato sul DB, provvedo a cancellarlo dalla directory di appoggio.