mancato upload

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Salve ragazzi dopo 4 giorni di stress sono giunto ad una concluisione per ovviare ad un problemi che mi assillava da giorni e che ha visto alcuni di voi protagonisti "grazie".
Il problema è quello di inviare un percorso specifico di un immagine nel recordes immagine del db.
Il problema è che il numero delle immagini si deve via via incrementare e decrementare in conseguenza dell'immissione e dell'eliminazione di un immagine.
Pertanto ho creato un sistema che comunichi con l'id dell'immagine e che racchiuda l'id autoincrement in un array da contare così facendo sono riuscito ad ottenere un contenitore sensibile all'incremento e al decremento delle immagini e sino a qui perfetto.
Ora ho problemi con l'upload che non mi carica la foto anche se gli invio il numero esatto dell'immagine come nome sotto forma di dato stringa e non so perchè.
Praticamente lo script che ho creato si occupa di intercettare il numero attraverso ad una query di select di seguito la rende disponibile per la rinomina ma pur ottendendo esattamente il numero nell'echo non mi carica la foto in cosa sbaglio?


<?php
$dbhost = 'localhost';
$dbuser = 'dbuser';
$dbpass = 'dbpassword';
$dbname = 'dbname';
$connessione = mysql_connect("localhost", "admin_ec_beaty", "dbpassword") or die("Impossibile connettersi al server host");
mysql_select_db(beauyit1_ec, $connessione) or die ("Impossibile selezionare il database.");

$dialogo="risposta=".$dialogo;

$sql=mysql_query("SELECT immagine from prodotti");
while ($mn=mysql_fetch_array($sql)){
$n[]=$m['id_prodotto'];
}
$memoria=$n;
$memoria=count($memoria);
$percorso="prodotti/";
$tipologia=".jpg";
$foto=$memoria.".jpg";
echo"$foto<br>";
$storage = './';
$uploadfile = ''.$storage.basename( $_FILES['Filedata']['name'] );
$success = move_uploaded_file( $_FILES['Filedata']['tmp_name'] ,$uploadfile );
$nomefileimmagine=$storage.$foto;
if($success){
if (file_exists($nomefileimmagine)){
echo"sono in if";
unlink($nomefileimmagine);
}
$nuovofile=''.$storage.$_FILES['Filedata']['name'];
rename($nuovofile,$nomefileimmagine);
echo($nomefileimmagine);
}else{
}

mysql_close($connessione);
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
intanto una "piccola" cosa

while ($mn=mysql_fetch_array($sql)){
$n[]=$m['id_prodotto'];
}

deve essere

while ($mn=mysql_fetch_array($sql)){
$n[]=$mn['id_prodotto'];
}

oppure

while ($m=mysql_fetch_array($sql)){
$n[]=$m['id_prodotto'];
}

intanto metti a posto questo poi riprova
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Cioa borgo grazie per la risposta.
Ho provato ma non funziona ugualmente non mi fa l'upload della foto e non so perchè :(
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
diventa difficile per me provare lo script, anche perchè dovrei farmi db+tabelle.
ti consiglio di spargere dopo ogni riga un var_dump per vedere cosa ti restituisce. esempio


var_dump($dialogo);
$dialogo="risposta=".$dialogo;
var_dump($dialogo);

da cui vedi cosa contiene $dialogo e che tipo di variabile è

e così via riga per riga, variabile dopo variabile sino a che non scopri quello che non va. fai anche per le query in quanto

$sql=mysql_query("SELECT immagine from prodotti");
var_dump($sql);
ti restituisce TRUE o FALSE se la query ha funzionato o no

quando hai trovato l'errore i var_dump li elimini
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
ok ci provo comunque la query funziona perchè mi da come echo l'esatto numero preso dal database è che non immette fisicamente la foto nella cartella mbhoo
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao, ho notato una cosa, tu fai

1.$sql=mysql_query("SELECT immagine from prodotti");
2.while ($mn=mysql_fetch_array($sql)){
3.$n[]=$m['id_prodotto'];
4.}
5.$memoria=$n;
6.$memoria=count($memoria);
7.$percorso="prodotti/";
8.$tipologia=".jpg";
9.$foto=$memoria.".jpg";

alla riga 1 fai la query che ti estrae "immagine" dalla tabella prodotti
dalla 2 alla 4 fai il while che ti inserisce nell'array $n l'id del prodotto, avendo con la riga 1 selezionato tutti gli n prodotti in $n[0] il primo id e in $[n] l'ultimo id
alla riga 5 attibusisci a $memoria l'array $n, quinidi diventa $n==$memoria (cioè memoria diventa un array uguale n)
alla riga 6 conti i quanti valori hai nell'array, potevi usare direttamente count($n) come risultato, in fondo, tale numero è uguale al numero dei record che hai nella tabella prodotti (tra l'altro $memoria da array diventa intero)
quindi ti bastava fare $memoria=mysql_num_rows($sql); senza tanti passaggi
per ora questo
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
ciao borgo ho provato ma non funziona.
Questi giri comunque mi servono per creare il nome dell'immagine prelevando un valore numerico dal database e con il concatenamento ottengo il numero.jpg che mi serve per rinominare l'immagine esattamente con il numero che prendo dal database quindi la locica è buona ma il problema è che non funziona e non mi sposta nella cartella infatti i var_drum funzionano tutti sino a quello che deve spostare nella cartella il file :(
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
quindi quello che non funzia è

$uploadfile = ''.$storage.basename( $_FILES['Filedata']['name'] );
$success = move_uploaded_file( $_FILES['Filedata']['tmp_name'] ,$uploadfile );

hai fatto questa verifica?

var_dump(basename( $_FILES['Filedata']['name'] ));
$uploadfile = ''.$storage.basename( $_FILES['Filedata']['name'] );
var_dump($uploadfile);
$success = move_uploaded_file( $_FILES['Filedata']['tmp_name'] ,$uploadfile );
var_dump($success);//dovrebbe dare BOOL e TRUE o FALSE

se è giusto, forse commetti un errore sui percorsi, non credo che sia un errore dovuto ai permessi in quanto ti avrebbe dato errore
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
ho modificato il concatenamento e mi carica la foto ma solo quando immetto il file nella cartella all'upload vero e proprio dal form non la carica :(

<?php
$dbhost = 'localhost';
$dbuser = 'dbuser';
$dbpass = 'dbpassword';
$dbname = 'dbname';
$connessione = mysql_connect("localhost", "admin_ec_beaty", "dbpassword") or die("Impossibile connettersi al server host");
mysql_select_db(beauyit1_ec, $connessione) or die ("Impossibile selezionare il database.");

$dialogo="risposta=".$dialogo;

$sql=mysql_query("SELECT immagine from prodotti");
while ($mn=mysql_fetch_array($sql)){
$n[]=$memoria['id_prodotto'];
}
$memoria=$n;
$memoria=count($memoria);
$tipologia=".jpg";
$foto=$memoria.$tipologia;

echo"$foto<br>";
$storage = './';
$uploadfile = ''.$storage.basename( $_FILES['Filedata']['name'] );
var_dump($uploadfile);
$success = move_uploaded_file( $_FILES['Filedata']['tmp_name'] ,$uploadfile );
var_dump($success);
$nomefileimmagine=$storage.$foto;
if($success){
if (file_exists($nomefileimmagine)){
unlink($nomefileimmagine);
var_dump($nomefileimmagine);
}
$nuovofile=''.$storage.$_FILES['Filedata']['name'];
rename($nuovofile,$nomefileimmagine);
var_dump($nuovofile);
echo($nomefileimmagine);
}
mysql_close($connessione);
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao

se il
var_dump(basename( $_FILES['Filedata']['name'] ));
ti restituisce
11.jpg
ed
var_dump($uploadfile);
ti restituisce string(2) "./"

a questo punto è logico che non uploadi (bool FALSE)

l'errore sta nella variabile $uploadfile che non si setta come vuoi tu (sembra che non faccioa il concatenamento), prova a scriverla senza il '' iniziale

$uploadfile = $storage.basename( $_FILES['Filedata']['name'] );



e riprova
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non capisco cosa intendi esattamente
... mi carica la foto ma solo quando immetto il file nella cartella all'upload vero e proprio dal form non la carica

con quasto vuoi dire che dal form non legge $_FILE? ma non avevi detto che restituiva 11.jpg?
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
si si sembra funzionare era il mio server dall'ftp non mi aggiornava bene il file "aruba". :) faccio altre prove ma credo sia risolto ti faccio sapee subito. Infinite grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
credo che tu stia facendo l'errore che facevo io tempo fa
caricavo una pagina
verificavo e mi dava errore
correggevo e ricaricavo
riverificavo e sempre errore
e così via impazzendo
poi dopo varie prove ho azzerato la chache (la cosa si presenta in modo maggiore con ff) e ho risolto
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Ragazzi credevo di aver risolto invece non è così poichè il problema sembra proprio essere l'upload allora ho modificato l'upload in questa maniera:

<?php
header('Cache-Control: no-cache');
header('Pragma: no-cache');
$dbhost = 'localhost';
$dbuser = 'dbuser';
$dbpass = 'dbpassword';
$dbname = 'dbname';
$connessione = mysql_connect("localhost", "admin_ec_beaty", "dbpassword") or die("Impossibile connettersi al server host");
mysql_select_db(beauyit1_ec, $connessione) or die ("Impossibile selezionare il database.");

$dialogo="risposta=".$dialogo;

$sql=mysql_query("SELECT immagine from prodotti");
while ($mn=mysql_fetch_array($sql)){
$n[]=$memoria['id_prodotto'];
}
$memoria=$n;
$memoria=count($memoria);
$tipologia=".jpg";
$foto=$memoria.$tipologia;

echo"$foto<br>";
$percorso="./";
$percorso_temp=$_FILE["nome_file"]["tmp_name"];
$nome_file=$FILES["nome_file"]["name"];
rename($nome_file,$foto);
if(copy($percorso_temp,$percorso.$nome_file)){
echo"File inviato:$nomefile";
}else{
echo"errore";
}
}
mysql_close($connessione);
?>

ma non carica l'immagine dovrebbe rinominarla e caricarla :(
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
mi è venuto un dubbio e ho fatto una prova elementare con questo scriptino

<?php
if(isset($_POST['carica'])){
$tmp_name = $_FILES["foto"]["tmp_name"];
$nome_nuovo="prova_caricamento.jpg";
move_uploaded_file($tmp_name, $nome_nuovo);
}
?>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
foto <input name="foto" type="file"><br>
<input type="submit" name="carica" value="carica">
</form>

che avevo messo dentro un cartella, quindi (ragionamento dimostratosi errato) mi sono detto che la foto da caricare l'avrei trovata dentro la stessa cartella non avendo messo il percorso.
ho provato a caricare una foto e sono andato nella cartella per vedere se l'aveva caricata: la foto non c'era. e qui il dubbio.
con esplora risorse ho cercato prova_caricamento.jpg e qui l'ho trovata, in tutt'altra parte (nella cartella apche????) che non c'entrava niente. quindi (deduzione) si tratta di un problema di percorsi.
se stai lavorando in locale fai una prova e con esplora risorse cerca la foto per capire dove (e perchè) è andata a finire
 
Discussioni simili
Autore Titolo Forum Risposte Data
M telecamera Foscam - mancato invio mail ad account gmail IP Cam e Videosorveglianza 0
V Mancato riconoscimento HD esterno USB Hardware 0
leagvc Mancato accesso a ripristino configurazione Sicurezza e Virus 2
leagvc Mancato avvio installazione su XP Windows e Software 1
M Mancato aggiornamento BIOS Hardware 1
M Upload immagine con javascript problemi con FormData() Javascript 1
Z Upload protetto e sicuro PHP 1
L Modifica file upload in ASP Classic ASP 2
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
Cosina Upload multiplo con invio allegati per email PHP 0
Cosina Upload multiplo con archiviazione in cartella PHP 16
P Script upload immagini jQuery 0
L upload image tramite url e cache PHP 10
W Non fa l'upload PHP 0
L Upload di un'immagine all'interno di un database usando php PHP 6
S Upload file senza doverlo selezionare PHP 2
P Upload foto cover e profilo jQuery 0
G Upload file error Apache 0
R Modifica codice per l'upload di più file PHP 1
S Problemi con modulo upload video php (help!) PHP 0
S [PHP] Upload stesso file PHP 14
max1974 [Javascript] dropzone upload to server Javascript 0
S [ASP.Net] [ASP] Upload Image ASP.NET 6
F [PHP] Informazioni upload PHP 11
G [PHP] upload file in server: percorso cartella PHP 2
M Upload 4 file php PHP 11
M [ASP] Upload file da form controllo Classic ASP 5
D [PHP] Upload intera cartella PHP 2
felino [PHP] Uploadify: upload immagini PHP 0
M [PHP] Nome file, upload e rinominare PHP 2
R Configurazione upload ftp su dvr IP Cam e Videosorveglianza 3
M [PHP] upload di un file esistente overwrite PHP 1
N [PHP] Test per l'upload di file attraverso un bot Telegram PHP 2
L [PHP] problema con upload e javascript (upload multiplo) Javascript 2
L [PHP] upload con errore PHP 2
V [PHP] Upload Excel in db PHP 0
jailbait [PHP] Upload immagine e stampa a schermo PHP 0
G PHP upload dati ed immagine PHP 7
F [PHP] Validare form prenotazione appuntamento tattoo con upload image PHP 0
D [PHP] Upload encrypt image PHP 0
C [PHP] Problema upload file (multiplo) PHP 1
P [PHP] Upload multiplo PHP 4
N [PHP] Problema upload immagini wordpress PHP 2
S [PHP] Upload file... PHP 6
michelangelopaone IPCAM Szinocam e upload FTP IP Cam e Videosorveglianza 0
razzor1994 Remote Upload Server Dedicati e VPS 0
P Barra upload file jQuery 1
giancadeejay [PHP] Aggiornare DB tramite UPLOAD file .csv PHP 39
MarcoGrazia [PHP] Upload e successiva visualizzazione immagini in DB PHP 3

Discussioni simili