- Home
- Categorie
- Coding e Sistemistica
- PHP
- Upload File
-
ok funziona...ma io come faccio a lasciare all'immagine il nome che aveva?
e come faccio a controllare se l'immagine inserita non supera determinate dimensioni di altezza e larghezza??
Grazie
Ciau
-
Lo puoi fare cambiando il codice in questo modo:
[php]
$imm="../images/atleti/" . $nome . "_" . $cognome . ".jpg";
$sql="INSERT INTO atleti SET
nome='$nome',
cognome='$cognome',
data='$data',
sesso='$sesso',
categoria='$categoria',
img='$imm'";
[/php]Ciao!
-
come faccio a lasciare all'immagine il nome che aveva?
e come faccio a controllare se l'immagine inserita non supera determinate dimensioni di altezza e larghezza??
-
Per mantenere il nome del file originale dovresti utilizzare questo:
[php]
$imm = "../images/atleti/" . $file['name'];
[/php]Per controllare informazioni sull'immagine, come altezza e larghezza devi usare:[php]
list($width, $height, $type, $attr) = getimagesize("immagine.jpg");
echo "Larghezza immagine " . $width;
echo "<BR>";
echo "Altezza immagine " . $height;
echo "<BR>";
echo "Formato immagine " . $type;
echo "<BR>";
echo "Attributi " . $attr;
[/php]Ciao!
-
@Sups said:
[php]
list($width, $height, $type, $attr) = getimagesize("immagine.jpg");[/php]ma nome immagine lo posso anche sostituire con la variabile che contiene quel percorso?
-
@talkoman said:
ma nome immagine lo posso anche sostituire con la variabile che contiene quel percorso?
Certo, puoi passare anche una variabile come argomento alla funzione, cosa importante è che deve contenere un percorso fisico dell'immagine.
Es. ../image/acaso.jpg
Ciao!
-
guarda ho fatto così:
[PHP] <?php
if(isset($_POST['nome'])):
$data= mktime("0", "0", "0", $_POST['mese'], $_POST['giorno'], $_POST['anno']);
$file = $_FILES['uploadfile'];
$nome=$_POST['nome'];
$cognome=$_POST['cognome'];
$sesso=$_POST['sesso'];
$categoria=$POST['categoria'];
if($file['error'] == UPLOAD_ERR_OK and is_uploaded_file($file['tmp_name'])) {
$imm="../images/atleti/" . $nome . "" . $cognome . ".jpg";
$size= getimagesize($file);
list($width, $height, $type, $attr) = $size;
if($width>120 && $height>160)
exit('<p>Errore durante l'iserimento della foto. Dimensioni non corrette!</p>');
else{
$sql="INSERT INTO atleti SET
nome='$nome',
cognome='$cognome',
data='$data',
sesso='$sesso',
categoria='$categoria',
img='$imm'";
//move_uploaded_file($file['tmp_name'],$imm);
copy($file['tmp_name'],$imm);
}
if (@mysql_query($sql))
echo '<p>Atleta inserito correttamente</p>';
else{
exit('<p>Errore durante l'iserimento dell'atleta: ' .
mysql_error() . '</p>');
}
$nid=mysql_insert_id(); }
?>[/PHP]Ma mi da questo errore:
Notice: Array to string conversion in C:\Programmi\EasyPHP 2.0b1\www\tapsos\admin\nuovoatleta.php on line 85
Warning: getimagesize(Array) [function.getimagesize]: failed to open stream: No such file or directory in C:\Programmi\EasyPHP 2.0b1\www\tapsos\admin\nuovoatleta.php on line 85
Atleta inserito correttamente
Come mai?
-
nada?
-
Ti sta' dicendo che $file e' un array, mentre la funzione getimagesize vuole come argomento il nome di un file.
Prova a scrivere invece[php]$size= getimagesize($file['tmp_name']);[/php]
-
ok grazie...ora funziona...come faccio a controllare invece se l'estensione è quella che voglio io?
-
Per l'estensione di un file c'è la funzione PATHINFO unita con EXTENSION.
[php]
$path_parts = pathinfo('immagine.jpg');
echo $path_parts['extension']; //echo => jpg
[/php]
-
ok grazie mille.....!!!
mi auguro di non dovervi disturbare +.....
-
arieccomi...................
ora ho un altro tipo di problema.
Praticamente io carico un file con una form.
nel database si salva il path e fino a qui tutto va bene...
questo file è come un'allegato.
Quindi quando leggo la news poi a fondo pagina metto:
Allegato: ??
come faccio a far spuntare solo il nome del file e non tutto il percorso?
poi, come faccio ad aprire il file cliccandoci??
Grazie!
Ciau!
-
@talkoman said:
Quindi quando leggo la news poi a fondo pagina metto:
Allegato: ??
come faccio a far spuntare solo il nome del file e non tutto il percorso?
poi, come faccio ad aprire il file cliccandoci??Per fa spuntare solo il nome del file, dato che sai quanti "/" ci sono nel percorso dove li salvi puoi fare, immaginando che il path sia
[php]
$file="../percorso/immagine.jpg";
list ($prt1, $prt2, $prt3)=explode("/", $file);
list($nome,$estensione)=explode(".", $prt3);
[/php]
@talkoman said:poi, come faccio ad aprire il file cliccandoci??
basta che lo inserisci in un href:
[php]
echo "<a href='".$file."' target=.....>".$prt3."</a>";
[/php]
-
ok....grazie Samyorn, funziona perfettamente...
ora xò ora ho un altro problema....io salvo questo file dalla cartella /ammin/
quindi quando cerca ../file/$nome quando sono dentro /ammin/ lo trova perfettamente.....ma se salgo di directory mi sballa...come faccio??
-
Beh, puoi risolvere mettendo il path assoluto, ovvero:
se il tuo sito è www.miosito.it
e la sottocartella che punta alle immagini è, partendo dalla directory principale, /ammin/file/$nomebasta che sostituisci:$file="../ammin/file/$nome";
con: $file="http://www.miosito.it/ammin/file/$nome";
così da qualunque cartella o subcartella del tuo sito richiami il file lui saprà dove trovarlo