[PHP] Inserire file .pdf in db

spider81man

Nuovo Utente
7 Lug 2018
24
0
1
Roma
Ciao a tutti,
Vorrei sapere se posso inserire in un DB MYSQ. Vorrei caricare i file con il pulsante file in modo che poi posso scaricarlo direttamente
Grazie
Spider81man
 

marino51

Utente Attivo
28 Feb 2013
2.599
132
63
Lombardia
si che è possibile, MA ….
è meglio NON inserire file nel db,
il file system gestito dal sistema operativo é un ottimo database per i file

se i file sono raccolti nella stessa cartella, nel db viene registrato il solo nome del file
se i file sono raccolti in più cartelle, oltre al nome del file occorre registrare nel db anche il percorso per raggiungere la cartella che lo contiene

in fase di lettura,
dal db si preleva (il percorso e) il nome del file
e tutto è pronto per visualizzarlo o renderlo disponibile per un download
 

spider81man

Nuovo Utente
7 Lug 2018
24
0
1
Roma
Grazie per la risposta,
ho usato il seguente codice per caricare SOLAMENTE il file:

PHP:
<HTML>
<head>
<title> PHP upload test page </title>
</head>
<body>
<?php
error_reporting(2047);
if (isset($_POST["invio"])) {
  $percorso = "uploadtest/";
  if (is_uploaded_file($_FILES['file1']['tmp_name'])) {
    if (move_uploaded_file($_FILES['file1']['tmp_name'], $percorso.$_FILES['file1']['name'])) {
      echo 'Nome file: <b>'.$_FILES['file1']['name'].'</b><br>';
      echo 'MIME Type: <b>'.$_FILES['file1']['type'].'</b><br>';
      echo 'Dimensione: <b>'.$_FILES['file1']['size'].'</b> byte<br>';
      echo '======================<br>';
      echo 'File caricato correttamente<br><br>';
      echo '<a href="upload.php">carica un altro file</a>';
    } else {
      echo "si è verificato un errore durante l'upload: ".$_FILES["file1"]["error"];
    }
  } else {
    echo "si è verificato un errore durante l'upload: ".$_FILES["file1"]["error"];
  }
} else {
  // HTML ?>
    <form enctype="multipart/form-data" method="post" action="" name="uploadform">
      seleziona il file da caricare sul server:
      <br>
      <input type="file" name="file1" size="50">
      <br>
      <input type="submit" value="invia" name="invio">
    </form>
  <?php
}
?>
</body>
</html>
La pagina mi dice che il file è stato caricato ma, se vado tramite ftp nella directory, non trovo vuota.
Come server uso Bitnami in locale su macchina virtuale ed alla cartella ho messo "777" come autorizzazioni.
grazie
spider81man
 

marino51

Utente Attivo
28 Feb 2013
2.599
132
63
Lombardia
nel codice che hai postato, la cartella di destinazione dei file é fissa
PHP:
$percorso = "uploadtest/";
,
ma in futuro potresti usare cartelle differenti,
quindi ti suggerisco di scrivere nel database l'intera informazione
PHP:
$percorso.$_FILES['file1']['name']
completando l'intero percorso, "percorso_completo/uploadtest/"
 

spider81man

Nuovo Utente
7 Lug 2018
24
0
1
Roma
Ciao,
guarda per ora la vorrei fissa solo per le prove, il problema è che non trovo i file che mando nella cartella ""uploadtest/" che si trova nella stessa directory dove si trova il sito, come mai?
Vorrei risolvere prima questo problema e poi incrementare il codice.
Grazie
 

spider81man

Nuovo Utente
7 Lug 2018
24
0
1
Roma
Marino ho notato che i file vengono si caricati sul server MA non nella cartella del percorso ma in quella di Root e vengono RINOMINATI in uploadtest+nome file.
Come mai? ho provato a mettere

PHP:
 $percorso = "./uploadtest";
Ma niente, sempre la stessa cosa.

MOD:
Guarda poi onestam,ente neanche tutti i file mi carica, metre a volte li mette nella cartella uploadtest senza nessuno modifica.
BAH
 
Ultima modifica:

spider81man

Nuovo Utente
7 Lug 2018
24
0
1
Roma
RISOLTO!!!

Allora tutto ok, il codice funziona bene il problema è che via FTP ci vuole un po per visualizzarlo mentre se entro via SSH lo vedo IMMEDIATAMENTE.
Grazie cmq