Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 24
  1. #11
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    hai tutto per progettare in maniera corretta un DB prestante, lascia perdere i file di testo

  2. #12
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    72
    Quote Originariamente inviata da clasku Visualizza il messaggio
    hai tutto per progettare in maniera corretta un DB prestante, lascia perdere i file di testo
    Grazie di nuovo clasku.
    Ti chiedo se vale la pena a questo punto usare una tabella anche per i file oppure creare semplicemente i campi file nella tabella pratiche.

    Ho letto un sacco di forum sull'upload dei file ma non capisco perché oltre a caricare i file sul database, bisogna caricarli anche all'interno di una cartella! Non è uno spreco di spazio? Eppure se quasi tutti i forum danno questa indicazione, ci sarà un motivo.

    Lo so, forse la domanda è stupida, ma sto studiando php, mysql da circa un mesetto e molte cose mi sono oscure ancora

  3. #13
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    nel DB metti il percorso al file che ti salvi nella cartella

  4. #14
    ma non si era detto che non si usano i file?

  5. #15
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    ^^^
    di sicuro non per conservare le annotazioni ad una pratica censita su un DB...

  6. #16

  7. #17
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    immagino che i file siano qualcosa di diverso dai file txt con i quali aveva aperto il thread, che so, le scansioni di documenti...
    se, invece, intendeva i file di testo, getto le armi...

  8. #18
    il giovane dice "Le annotazioni devono essere salvate su file txt, il quale conterr� la data di inserimento dell'annotazione, un testo che pu� essere lungo 400 caratteri e al limite una variabile contenente il nome del delegato che gestisce quella pratica."

    la domanda è: perché un file di testo?

  9. #19
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    72
    ciao ragazzi, discussione calda, bene bene... allora riassumo il concetto che ho in mente e che devo tradurre in codice.
    un utente apre una pratica scegliendo o meno di allegare un file a corredo, per esempio solo pdf (come dice ciasku sono scansioni di documenti). le annotazioni andranno incluse nella tabella omonima.

    optime, avevo pensato a file txt perch� pensavo pesassero meno! Tutto qui! ora ciasku e gli altri mi hanno aiutato.

    il mio problema ora per� � il seguente: ho un codice php col quale inserisco una nuova riga nella tabella pratiche e carico il file allegato in una cartella del sito. finch� � un file singolo � va tutto bene, ma se faccio la prova selezionando pi� file, il mio codice mi carica solo un file nel database, mentre in cartella me li carica tutti correttamente.

    ora vi posto il mio codice, lo so, sar� pieno di errori e sar� pure deprecato... non vogliatene, ho iniziato col php da un mese... e in effeti scrivo sul forum proprio per imparare

    tabella pratiche:
    CREATE TABLE `pratiche` (
    `id_prat` int(11) NOT NULL,
    `tipo_richiesta` varchar(3) NOT NULL,
    `caso1` varchar(20) NOT NULL,
    `caso2` varchar(20) NOT NULL,
    `anno_prat` int(11) NOT NULL,
    `num_prat` int(4) NOT NULL,
    `data_aper` date NOT NULL,
    `data_scad` date NOT NULL,
    `priorita` varchar(5) NOT NULL,
    `name` varchar(30) NOT NULL,
    `type` varchar(30) NOT NULL,
    `size` int(11) NOT NULL,
    `content` mediumblob NOT NULL,
    `id_utente` int(11) NOT NULL,
    `nome_utente` varchar(35) NOT NULL,
    `assegnata_a` varchar(30) NOT NULL,
    `tipo_ric` varchar(10) NOT NULL,
    `stadio_prat` varchar(10) NOT NULL,
    `stato_prat` varchar(10) NOT NULL,
    `data_chius` date NOT NULL,
    `descrizione_prat` varchar(300) NOT NULL,
    `note_prat` varchar(150) NOT NULL,
    `note_delegato` varchar(200) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


    file apri_pratica.php
    <?php


    // Includo la connessione al database
    require('config.php');

    // Se il modulo viene inviato...
    if(isset($_POST['invia_pratica']) && isset($_FILES['file_caricati']))
    {

    // Dati Inviati dal modulo

    $tipo_richiesta = (isset($_POST['tipo_richiesta'])) ? trim($_POST['tipo_richiesta']) : '';
    $caso1 = (isset($_POST['caso1'])) ? trim($_POST['caso1']) : '';
    $caso2 = (isset($_POST['caso2'])) ? trim($_POST['caso2']) : '';
    $anno_prat = (isset($_POST['anno_prat'])) ? trim($_POST['anno_prat']) : '';
    $num_prat = (isset($_POST['num_prat'])) ? trim($_POST['num_prat']) : '';
    $data_aper = (isset($_POST['data_aper'])) ? trim($_POST['data_aper']) : '';
    $data_scad = (isset($_POST['data_scad'])) ? trim($_POST['data_scad']) : '';
    $priorita = (isset($_POST['priorita'])) ? trim($_POST['priorita']) : '';

    foreach($_FILES['file_caricati']['tmp_name'] as $key => $tmp_name ){
    $fileName = $key.$_FILES['file_caricati']['name'][$key];
    $fileSize =$_FILES['file_caricati']['size'][$key];
    $tmpName =$_FILES['file_caricati']['tmp_name'][$key];
    $fileType=$_FILES['file_caricati']['type'][$key]; }

    $id_utente = (isset($_POST['id_utente'])) ? trim($_POST['id_utente']) : '';
    $nome_utente = (isset($_POST['id_utente'])) ? trim($_POST['id_utente']) : '';
    $assegnata_a = (isset($_POST['assegnata_a'])) ? trim($_POST['assegnata_a']) : '';
    $tipo_ric = (isset($_POST['tipo_ric'])) ? trim($_POST['tipo_ric']) : '';
    $stadio_prat = (isset($_POST['stadio_prat'])) ? trim($_POST['stadio_prat']) : '';
    $stato_prat = (isset($_POST['stato_prat'])) ? trim($_POST['stato_prat']) : '';
    $descrizione_prat = (isset($_POST['descrizione_prat'])) ? trim($_POST['descrizione_prat']) : '';
    $note_prat = (isset($_POST['note_prat'])) ? trim($_POST['note_prat']) : '';

    $fp = fopen($tmpName, 'r');
    $content = fread($fp, filesize($tmpName));
    $content = addslashes($content);
    fclose($fp);

    if(!empty($_FILES["file_caricati"])) {
    foreach ($_FILES["file_caricati"]["name"] as $indice => $fileName) {
    if($_FILES["file_caricati"]["error"][$indice] == 0) {
    $estensione = pathinfo($_FILES["file_caricati"]["name"][$indice], PATHINFO_EXTENSION);


    if($estensione == "pdf" || $estensione == "txt") {
    if($_FILES["file_caricati"]["size"][$indice] < 1000000) {
    $risultato = move_uploaded_file($_FILES["file_caricati"]["tmp_name"][$indice], $_SERVER["DOCUMENT_ROOT"] . "/FIRST/uplds/" . $_FILES["file_caricati"]["name"][$indice]);
    if($risultato) {
    echo "File spostato con successo!";
    } else {
    die("Errore imprevisto durante lo spostamento dell'immagine!");
    }
    } else {
    die("Il file selezionato � troppo grande, non deve superare 1MB!");
    }
    } else {
    die("Estensione non consentita! Hai cercato di caricare un file ." . $estensione . "!");
    }
    } else {
    die("Errore imprevisto durante il caricamento dell'immagine!");
    }
    }
    } else {
    die("Nessun file selezionato.");


    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
    $tipo_richiesta = addslashes($tipo_richiesta);
    $caso1 = addslashes($caso1);
    $caso2 = addslashes($caso2);
    $anno_prat = addslashes($anno_prat);
    $num_prat = addslashes($num_prat);
    $data_aper = addslashes($data_aper);
    $data_scad = addslashes($data_scad);
    $priorita = addslashes($priorita);
    $content = addslashes($content);
    $id_utente = addslashes($id_utente);
    $nome_utente = addslashes($nome_utente);
    $assegnata_a = addslashes($assegnata_a);
    $tipo_ric = addslashes($tipo_ric);
    $stadio_prat = addslashes($stadio_prat);
    $stato_prat = addslashes($stato_prat);
    $descrizione_prat = addslashes($descrizione_prat);
    $note_prat = addslashes($note_prat);
    $fileName = addslashes($fileName);
    }

    // Query per l'inserimento dell'utente nel database
    $strSQL = "INSERT INTO pratiche (tipo_richiesta,caso1,caso2,anno_prat,num_prat,dat a_aper,data_scad,priorita,name, size, type, content,
    id_utente,nome_utente,assegnata_a,tipo_ric,stadio_ prat,stato_prat,descrizione_prat,note_prat)";
    $strSQL .= "VALUES('$tipo_richiesta', '$caso1', '$caso2', '$anno_prat', '$next_auto_inc', NOW(), '$data_scad', '$priorita',
    '$fileName', '$fileSize', '$fileType', '$content',
    '$id_utente', '$nome_utente', '$assegnata_a', '$tipo_ric', '$stadio_prat', '$stato_prat',
    '$descrizione_prat', '$note_prat' )";
    mysql_query($strSQL) OR die("Errore 003, contattare l'amministratore ".mysql_error());


    // Reindirizzo l'utente ad una pagina di conferma della registrazione
    header('Location: gest_ptc.php');
    exit;


    }
    ?>


    della form html scrivo solo il necessario:

    ...
    <form method="post" enctype="multipart/form-data" id="form" >
    <td><input type="hidden" name="MAX_FILE_SIZE" value="2000000">
    <input name="file_caricati[]" id="file_caricati" type="file" multiple="multiple"
    onfocus="if(this.value=='file_caricati') this.value='';"></td>
    </tr>
    </form>

    sono quasi sicuro che l'errore � nel foreach... un aiuto?
    Ultima modifica di gianluis; 23-09-2016 a 21:00 Motivo: cancellate righe vuote

  10. #20
    luis, non va bene così: dici mille cose in uno stesso post, includi un miliardo di righe di codice non formattate, quello che scrivi è inframezzato da caratteri strani di difficile comprensione.

    ordine, ordine, ordine. una cosa alla volta. resettati e ricomincia.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.