[PHP] Upload immagine in un form con target _blank: non funziona

Ciakko

Nuovo Utente
5 Giu 2014
11
0
1
Salve a tutti, sono relativamente nuovo del forum, anche se vi seguo da parecchio.
Mi diverto con la programmazione per il web in attesa di poterne fare un lavoro, e sperimento su sperimento incappo a volte in dubbi esistenziali, eccone uno.
Ho la necessità di aprire una nuova finestra all'invio del mio form (multipart/form-data) per cui uso target="_blank", target="_new" oppure associo il target al mio bottone o input con formtarget. Con i dati di testo non ho alcun problema mentre con le immagini ho un problema strano, ossia il php riceve un file con la sua estensione ma non con una grandezza, ossia vuoto.
Questo è il php che elabora l'immagine:
PHP:
if (preg_match('/jpeg/i', $_FILES['userFile']['type'])){
$estensione = 'jpeg';}
else if (preg_match('/png/i', $_FILES['userFile']['type'])){
$estensione = 'png';}
else if (preg_match('/gif/i', $_FILES['userFile']['type'])){
$estensione = 'gif';}
else die ('<h1>Errore!!!</h1><br/><h3>Estensione ('.$type.') non supportata</h3>');


list($width, $height) = getimagesize ($_FILES['userFile']['tmp_name']);

echo 'Tipo di file: '.$_FILES['userFile']['type'].'<br>';
echo 'Larghezza file: '.$width.'<br>';
echo 'Altezza file: '.$height.'<br>';

$handle = fopen ($_FILES['userFile']['tmp_name'], 'r+') or die ('<h1>Errore</h1><br/><h3>impossibile aprire il file immagine prodotto</h3>');
$image = fread ($handle, filesize($_FILES['userFile']['tmp_name'])) or die('<h1>Errore</h1><br/><h3>impossibile leggere il file immagine</h3>');
fclose ($handle);

A schermo ottengo questo:
Tipo di file: image/jpeg
Larghezza file:
Altezza file:

Warning: fread(): Length parameter must be greater than 0 in ...
Errore
impossibile leggere il file immagine

Se provo il codice offline con Mamp funziona, online no e chiaramente se il form lo invio alla stessa pagina il tutto funziona correttamente. Non ho idea del perché succeda questo e se ci sia una soluzione.
Mi farebbe piacere ogni idea o soluzioni alternative.
Grazie mille.
 
Ultima modifica di un moderatore:

cris8380

Moderatore
Membro dello Staff
MOD
3 Giu 2016
261
14
18
40
Ciao, il target="_blank" va utilizzato davanti all' href
 

cris8380

Moderatore
Membro dello Staff
MOD
3 Giu 2016
261
14
18
40
Ti posto un esempio:

HTML:
<a href="image.jpg" target=_blank><img src="image.jpg" height=49 width=49></a><a href="image2.jpg" target=_blank><img src="image2.jpg" height=49 width=49></a>
//e così via


Codice:
<script language="JavaScript">
lista=new Array('<img src="http://www.miosito.it/immagini/image.jpg" width=196, height=195>','<img src= "http://www.miosito.it/immagini/image2.jpg" width=196, height=195>')
titolo= new Array("image", "image2")
maxL=new Array(220,220,322,196)
maxH=new Array(250,250,260,150)
function apri(conta) {
L=maxL[conta]
H=maxH[conta]
finestra= window.open('vuoto.htm','nome','width=400,height=400')
finestra.focus()
finestra.resizeTo(L,H)
finestra.document.write('<html><title>'+titolo[conta]+'</title><body>' + lista[conta] +'</body></html>')
finestra.document.close()
}
</script>[/B]
 

Ciakko

Nuovo Utente
5 Giu 2014
11
0
1
:) Grazie, lo so, ma non è il mio caso. Io invio un form non ho un link. Il target è riferito al tag form o al bottone di invio.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova a modificare
PHP:
list($width, $height) = getimagesize ($_FILES['userFile']['name']);
e subito dopo metti un va_dump per verificare
PHP:
var_dump($width, $height);//poi lo togli
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
allora prima dei controlli sul file metti un altro var_dump per verificare che la trasmissione sia giusta
PHP:
<?php
echo "<pre>";
var_dump($_FILES['userFile']);
echo "</pre>";
//il tag pre ti serve per ordinare bene quello che eventualmente ti restituisce
//... ecc
?>
se ti ta NULL vuol dire che la trasmissione dal form non avviene, se ok ti dovrebbe dare tutti i valori di $_FILES['userFile']['tmp_name'] ecc...
piccolo dubbio probabilmente stupido
nel tag form hai messo enctype="multipart/form-data" ?
 

Ciakko

Nuovo Utente
5 Giu 2014
11
0
1
Ciao, sì il form è settato su enctype="multipart/form-data".
Non ho tempo ora di testare con un codice pulito e ridotto all'osso se la situazione si ripresenta ugualmente, se fosse così sembra una "falla" nel trasporto dei dati. Magari dipende dalla versione di php, da qualche settaggio del server che imposta la cartella del file temporaneo o semplicemente html non supporta l'invio in post di files su una nuova finestra.
Sono solo supposizioni, speravo che qualcuno avesse avuto lo stesso mio problema.
Grazie lo stesso a tutti, aggiornerò più avanti.
Ciao
 
Discussioni simili
Autore Titolo Forum Risposte Data
L Upload di un'immagine all'interno di un database usando php PHP 6
jailbait [PHP] Upload immagine e stampa a schermo PHP 0
G PHP upload dati ed immagine PHP 7
L [php] upload controllo dimensione immagine PHP 8
K [PHP] multi upload immagine da form PHP 60
L Passare ad uno script PHP i dati di un form incluso l'upload di un'immagine Ajax 0
S Problemi con modulo upload video php (help!) PHP 0
S [PHP] Upload stesso file PHP 14
F [PHP] Informazioni upload PHP 11
G [PHP] upload file in server: percorso cartella PHP 2
M Upload 4 file php PHP 11
D [PHP] Upload intera cartella PHP 2
felino [PHP] Uploadify: upload immagini PHP 0
M [PHP] Nome file, upload e rinominare PHP 2
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
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
giancadeejay [PHP] Aggiornare DB tramite UPLOAD file .csv PHP 39
MarcoGrazia [PHP] Upload e successiva visualizzazione immagini in DB PHP 3
V [PHP] upload di file in cartella e sua sicurezza PHP 137
S PHP: Aiuto con upload immagini che si auto tuotano PHP 24
V File upload.php della guida, ma ha un errore PHP 8
A Upload multiplo di immagini in PHP PHP 3
francesco7 [Problema] esecuzione script Upload file in php PHP 0
I upload file php / javascript / mysql PHP 0
R upload file php PHP 5
F upload foto in php?????? PHP 2
R upload e ridimensionamento immagini in php PHP 0
R upload e ridimensionamento immagini in php PHP 1
L [PHP] Upload immagini e ridimensionamento automatico PHP 9
N [RISOLTO] Upload jpeg e pdf in folder (PHP) PHP 16
N problema script php mysql multi upload immagini PHP 31
helpdesk Gif agli eventi di php Upload PHP 6
L [PHP e FTP upload] controllo file allegato PHP 6
neo996sps [PHP + MySQL + Server Linux] Upload semi riuscito e query non eseguite PHP 2
novello88 PHP upload file PHP 1
Y [PHP/MySQL] Upload PDF PHP 3
O PHP ecommerce > da un sito funzionante > duplicazione riuscita ma non upload immagini PHP 19
B [PHP - MySQL] Upload di un File PHP 6
B upload con resize in php PHP 5
M UPLOAD File in PhP PHP 3
SolidSnake4 miglior script per l'upload di immagini con php su DB PHP 5

Discussioni simili