PDA

Visualizza la versione completa : Pagina per inviare file su una cartella


Danielepaol
12-02-2020, 16:44
Salve gentilissima comunity,

ho un problema sulla pagina upload. Questa applicazione divisa in due pagine: 1) inserisci file.html; 2) upload.php; Nella pagina inserisci file c' il form, invece nella pagina upload c' lo script php. L'errore consiste quando invio il file. Ed essa mi dice: "Non hai inviato nessun file". Premetto che il codice l'ho trovato online, ed la cartella si trova su uno spazio altervista.org. Non so dove ho sbagliato: mi potete aiutare? Vi posto tutte e due le pagine

inserisci file.html




<!DOCTYPE html>
<html>
<head> <meta charset="utf-8" />
<title>invia file</title>
</head>
<body>
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
Invia questo file: <input name="userfile" type="file"></br>
<input type="submit" value="Invia File">
</form>
</body>
</html>


upload.php



<?php// per prima cosa verifico che il file sia stato effettivamente caricato
if (!isset($_FILES['userfile']) || !is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo 'Non hai inviato nessun file...';
exit;
}
//percorso della cartella dove mettere i file caricati dagli utenti
$uploaddir = 'http://testingfile.altervista.org/ProvaInvia/invia%20file/img/';
//Recupero il percorso temporaneo del file
$userfile_tmp = $_FILES['userfile']['tmp_name'];
//recupero il nome originale del file caricato
$userfile_name = $_FILES['userfile']['name'];
//copio il file dalla sua posizione temporanea alla mia cartella upload
if (move_uploaded_file($userfile_tmp, $uploaddir . $userfile_name)) {
//Se l'operazione andata a buon fine...
echo 'File inviato con successo.';
}else{
//Se l'operazione fallta...
echo 'Upload NON valido!';
}
// limito la dimensione massima a 4MB
if ($_FILES['userfile']['size'] > 4194304) {
echo 'Il file troppo grande!';
exit;
}
// verifica che il file non esiste gia
$target_file = '/var/www/myupload/' . $_FILES['userfile']['name'];if (file_exists($target_file)) {
echo 'Il file esiste gi';
exit;
}
//verifica l'estensione del file
$ext_ok = array('doc', 'docx', 'pdf','png');
$temp = explode('.', $_FILES['userfile']['name']);$ext = end($temp);
if (!in_array($ext, $ext_ok)) {
echo 'Il file ha un estensione non ammessa!';
exit;
}
//verifica se solo un immagine
$is_img = getimagesize($_FILES['userfile']['tmp_name']);if (!$is_img) {
echo 'Puoi inviare solo immagini';
exit;
}
?>

camionistaxcaso
18-02-2020, 22:51
Per eseguire un upload devi avere sul server una cartella con permessi di scrittura, altevista molto limitato come servizio, per potrebbero fornirti una cartella, controlla se nella root c' una cartella che si chiama tipo "Public" o qualcosa del genere, se c' puoi usare solo quella

Danielepaol
19-02-2020, 00:37
Si penso che la cartella abbia i permessi di scrittura perch ho fatto una prova inviando il file ed il file lo ha caricato sulla cartella il problema che non so come mettere nella pagina dove si visualizzano tutte le immagini che ho caricato

camionistaxcaso
21-02-2020, 18:43
"penso" in informatica non contemplato, il file lo hai inviato con quale protocollo? Ftp? Http?

Danielepaol
22-02-2020, 12:54
Inazittutto scusami se te li ripeto ma l'upload funziona il problema sta nell'altra pagina che non so richiamare i dati immessi nel database nel tag <img>

Danielepaol
25-02-2020, 15:34
Ho provato a creare il file che richiama i dati del database e li inserisce nell immagine ma si vede il simbolo dell immagine ma l'immagine non si vede


<html>
<head>
<title>Home</title>
</head>
<body>
<?php
include_once("include/config.php");
$result = mysql_query("SELECT 'nome_file' FROM file ");
if (($result) && (mysql_num_rows ($result)) >0){
while ($row= mysql_fetch_array($result)){
$risultati = $row;
echo'<img src="upload/'.$risultati.'">';
}
}else {
echo "foto non caricate";
mysql_error();
exit;
}
?>
</body>
</html>


In attessa di vostra risposta

Loading