Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Upload file in php da zero
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • M
      momino User Attivo • ultima modifica di

      Allora, partiamo dalle basi: la pagina html deve contenere un form con "enctype=multipart/form-data" per poter caricare i file tramite php.
      La pagina php che accoglie i dati deve avere questo codice:
      [php] if ($_FILES['foto']['name'] != '')
      {
      $updir = "./dir_upload/";
      if (!is_dir($updir))
      mkdir($updir);
      $ext = $_FILES['foto']['type'];
      if ($FILES['foto'] < 500000)
      {
      if (($ext == 'image/jpeg') | ($ext == 'image/jpg') | ($ext == 'image/pjpeg') | ($ext == 'image/gif') | ($ext == 'image/png') | ($ext == 'image/x-png') | ($ext == 'image/bmp') | ($ext == 'image/tiff'))
      {
      $nome = str_replace(' ','
      ',$FILES['foto']['name']);
      $nome = str_replace("'","
      ",$nome);
      $new_path = $updir.$nome;
      if (!move_uploaded_file($_FILES['foto']['tmp_name'],$new_path))
      die ("errore nel caricamento file!");
      else
      {
      $link_allegato = "url_assoluta_del_sito/$new_path";
      /* invia la mail con nel testo la variabile $link_allegato */
      }
      }
      }
      }[/php]Spero sia chiaro, se non fosse così continua a chiedere spiegazioni 😉

      p.s. io l'ho fatto in modo ke controlli l'estensione dei file immagine, e una dimensione non superiore a 500k circa, ma tu puoi metterci quello che vuoi, sia come estensione ke come dimensione.

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • D
        davide.al User Attivo • ultima modifica di

        Ma alla fine che faccio invia modulo testo e file allegato insieme lo invio con il tasto invia modulo vero?

        Poi, io all'inizio del form ho:
        <form action="invio.php" method="post" id="modulo">

        tu mi dici
        "enctype=multipart/form-data"

        Non è che non mi funziona ?

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • M
          momino User Attivo • ultima modifica di

          infatti l'enctype va inserito insieme a method, id, e action, risultando:
          <form action="invio.php" method="post" id="modulo" enctype="multipart/form-data">

          Ovviamente per caricare un file, devi mettere nel tuo form:
          <input type="file" name="allegato">

          E carichi il tutto col pulsante "invia" del form.

          p.s. nel codice php che ti ho scritto prima, dove c'è la variabile "$_FILES['foto']", "foto" è il nome dell'input file ke hai nel form html; se nel form metti un input file con name="allegato" (come ho fatto poco prima), nella pagina php richiamerai quel valore con "$_FILES['allegato']".

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • D
            davide.al User Attivo • ultima modifica di

            Stò provando adesso
            ma poi i file allegati dove vanno?

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • M
              momino User Attivo • ultima modifica di

              Vanno in una directory che io ho chiamato:
              $updir = "./dir_upload/";
              cioè una cartella che sta nella stessa posizione del file "invio.php" che elabora il tutto.

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • D
                davide.al User Attivo • ultima modifica di

                La crea da sola?
                E il link nella email?

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • M
                  momino User Attivo • ultima modifica di

                  Nel codice php che ti ho scritto prima, se non esiste quella directory te la crea automaticamente.
                  Il link da mettere nella mail è l'url assoluto del tuo sito (compreso di http e di www) concatenato la variabile $new_path.

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • D
                    davide.al User Attivo • ultima modifica di

                    Mi carica i files uploadati sul server, come posso cambiarla directory? La voglio mettere in una cartella che si chiama uploads

                    e il link nella mia_email per vedere il file allegato?

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • M
                      momino User Attivo • ultima modifica di

                      Se vuoi cambiare directory, basta cambiare il valore della variabile $updir nel mio script php;
                      leggi sopra come è composto il link dell'allegato....

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • D
                        davide.al User Attivo • ultima modifica di

                        Così?
                        $link_allegato = "http://www.miosito.net/uploads.$new_path";

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • M
                          momino User Attivo • ultima modifica di

                          Sostituisci il "." tra uploads e $new_path con "/" e sei a posto!

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • D
                            davide.al User Attivo • ultima modifica di

                            La cartella si è creata dir_upload mi va bene ma i files non ci sono all'interno, non carica....

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • M
                              momino User Attivo • ultima modifica di

                              Hai provato a togliere il limite sulla dimensione e il filtro sulle estensioni? Se vuoi tenere queste limitazioni, sei costretto a rispettarle...

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • D
                                davide.al User Attivo • ultima modifica di

                                Ho fatto > al posto di <

                                if ($_FILES['file'] > 500000)

                                qua dici?
                                Non funziona lo stesso.

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • M
                                  momino User Attivo • ultima modifica di

                                  Prova a scrivere** if (true)**, toglilo per ora il controllo, così vediamo se è quello il problema; e così fai anche dove controlla l'estensione del file da caricare; sono quei 2 gli unici controlli che potresti non rispettare nel caricare il file, perchè i permessi di scrittura nella cartella ci sono tutti (0777 di default), l'unico intoppo possono essere quei 2 controlli.
                                  Toglili e riprova.

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • D
                                    davide.al User Attivo • ultima modifica di

                                    Niente ancora... non carica li files....

                                    😞

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • D
                                      davide.al User Attivo • ultima modifica di

                                      Ma if (true)
                                      al posto di
                                      if ($_FILES['file'] < 500000)

                                      ?

                                      Ma alla fine non ci vuole ---> ;

                                      0 Miglior Risposta Ringrazia Cita Rispondi

                                        1 Risposta Ultima Risposta
                                      • D
                                        davide.al User Attivo • ultima modifica di

                                        questo è il codice

                                        [php] if ($_FILES['file']['name'] != '')
                                        {
                                        $updir = "./dir_upload/"; // il percorso dove upload i file sul server
                                        if (!is_dir($updir))
                                        mkdir($updir);
                                        $ext = $_FILES['file']['type'];
                                        if ($FILES['file'] < 500000);
                                        {
                                        if (($ext == 'image/jpeg') | ($ext == 'image/jpg') | ($ext == 'image/pjpeg') | ($ext == 'image/gif') | ($ext == 'image/png') | ($ext == 'image/x-png') | ($ext == 'image/bmp') | ($ext == 'image/tiff'))
                                        {
                                        $nome = str_replace(' ','
                                        ',$FILES['file']['name']);
                                        $nome = str_replace("'","
                                        ",$nome);
                                        $new_path = $updir.$nome;
                                        if (!move_uploaded_file($_FILES['foto']['tmp_name'],$new_path))
                                        die ("errore nel caricamento file!");
                                        else
                                        {
                                        $link_allegato = "http://www.miositonet/uploads/$new_path"; // il link che ti invia via email
                                        /* invia la mail con nel testo la variabile $link_allegato */
                                        }
                                        }
                                        }
                                        }

                                        ?>[/php]

                                        0 Miglior Risposta Ringrazia Cita Rispondi

                                          1 Risposta Ultima Risposta
                                        • D
                                          davide.al User Attivo • ultima modifica di

                                          la cartella la crea ma il file all'interno nn c'è....

                                          0 Miglior Risposta Ringrazia Cita Rispondi

                                            1 Risposta Ultima Risposta
                                          • D
                                            davide.al User Attivo • ultima modifica di

                                            Ma se mkdir($updir); viene sotituito cn md5.. ricordo una cosa del genere

                                            ??ì'

                                            0 Miglior Risposta Ringrazia Cita Rispondi

                                              1 Risposta Ultima Risposta
                                            Caricamento altri post
                                            Rispondi
                                            • Topic risposta
                                            Effettua l'accesso per rispondere
                                            • Da Vecchi a Nuovi
                                            • Da Nuovi a Vecchi
                                            • Più Voti