Visualizzazione risultati 1 fino 3 di 3
Like Tree1Likes
  • 1 Post By mzanella

Discussione: strano errore in salvataggio immagine

  1. #1
    puntifedelta non è connesso Utente giovane
    Data registrazione
    08-10-2020
    Messaggi
    92

    Predefinito strano errore in salvataggio immagine

    ciao ragazzi una cortesia ho uno strano errore che non riesco proprio a capirne la causa e da cosa dipenda
    partiamo dall'inizio come sapete mi diverto a fare delle cose in php poi cancello e ne ricomincio un'altra insomma mi piace capire ed imparare.

    attraverso un form voglio caricare le immagini, queste immagini devono essere salvate sul db e in cartella specifica quindi ho creato questo form
    Codice PHP:
    <form action="logo/logo_up.php" method="post" enctype="multipart/form-data">
    <label class="col-form-label">Carica logo da pc</label>
    <input type="file" name="upfile" class="form-control">
    <input type="hidden" name="MAX_FILE_SIZE" value="10000">
    <input type="hidden" name="id" value="<?php echo htmlspecialchars($_SESSION["id"]); ?> ">
    <br>
    <select name="attivo" class="form-control">
    <option value="">--- Vuoi mostrare il tuo logo ? ---</option>
    <option value="1">Mostra</option>
    <option value="0">Nascondi</option>
    </select>
    <br>
    <input type="submit" name="submit_logo" class="btn btn-secondary btn-sm" value="Invia il file">
    </form>
    Codice PHP:
    <?php
    require_once "../config/database.php";
    if(!isset(
    $_FILES)) $_FILES = $HTTP_POST_FILES;
    if(!isset(
    $_SERVER)) $_SERVER = $HTTP_SERVER_VARS;

    /********************* VARIABILI DA SETTARE ********************/
    // Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto)
    $upload_dir = $_SERVER["DOCUMENT_ROOT"] . "/user/logo/upload";

    // Eventuale nuovo nome da dare al file uploadato
    $new_name = "";

    // Se $new_name è vuota, il nome sarà lo stesso del file uploadato
    $file_name = ($new_name) ? $new_name : $_FILES["upfile"]["name"];

    if(
    trim($_FILES["upfile"]["name"]) == "") {

    die(
    "Non hai indicato il file da uploadare !");

    }

    if(@
    is_uploaded_file($_FILES["upfile"]["tmp_name"])) {

    @
    move_uploaded_file($_FILES["upfile"]["tmp_name"], "$upload_dir/$file_name")
    or die(
    "Impossibile spostare il file, controlla l’esistenza o i permessi della directory dove fare l’upload.");

    } else {

    die(
    "Problemi nell'upload del file " . $_FILES["upfile"]["name"]);

    }


    if(!empty(
    $_POST["submit_logo"]))
    {
    $sql = "INSERT INTO logo (name,id,attivo) VALUES('".$file_name."','".$_POST["id"]."','".$_POST["attivo"]."')";
    echo
    "<meta http-equiv='refresh' content='0'>";
    if (
    mysqli_query($link, $sql))
    {
    header("Location:../editor.php");}}
    ?>
    lo strano errore è che quando clicco sul pulsante Invia File visualizzo questo messaggio di errore "Non hai indicato il file da uploadare" però se vado a vedere nel database e nella cartella ci sono li salva senza alcun problema cosa può essere ?

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Se visualizzi quell'errore, l'unica possibilità è che sia generato dal die. Segue necessariamente che move_uploaded_file e mysqli_query non sono eseguiti, quindi il file non viene salvato e non viene inserito nulla nel database.

    Se trovi un file caricato e un record nella tabella, questi non possono essere stati generati dallo stesso flusso che ha mostrato il messaggio d'errore. Probabilmente erano lì da un test precedente.
    puntifedelta likes this.

    I suggerimenti che do più spesso:


  3. #3
    puntifedelta non è connesso Utente giovane
    Data registrazione
    08-10-2020
    Messaggi
    92

    Predefinito

    Citazione Originalmente inviato da mzanella Visualizza messaggio
    Se visualizzi quell'errore, l'unica possibilità è che sia generato dal die. Segue necessariamente che move_uploaded_file e mysqli_query non sono eseguiti, quindi il file non viene salvato e non viene inserito nulla nel database.

    Se trovi un file caricato e un record nella tabella, questi non possono essere stati generati dallo stesso flusso che ha mostrato il messaggio d'errore. Probabilmente erano lì da un test precedente.
    si grazie me ne sono accorto dopo è questo il problema

    Codice PHP:
    echo "<meta http-equiv='refresh' content='0'>";

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •