Visualizzazione risultati 1 fino 1 di 1

Discussione: scaricare file da un database

  1. #1
    Guest

    Predefinito scaricare file da un database

    ciao a tutti sto creando un sito dove è possibile scaricare dei file txt,pdf, word, exel che vengono caricati dagli utenti...
    Il problema è il download perchè l'upload funziona e carico i file come medimblob...
    i codici sono:

    index.php
    Codice PHP:
    Appunto:
    Codice PHP:
    <?
    $getid
    =$_GET['id'];
    $result = mysql_query("SELECT * FROM tabella_appunto where id='$getid'");

    while(
    $row = mysql_fetch_array($result)){
    $file = $row['appunto'];
    }
    echo
    "<a href=\"download.php?file={$file}\">".$riga["nome"]."</a><br />";?>

    Qui è dove passo il mio file alla pagina download che dovrebbe scaricare i file...

    download.php

    Codice PHP:
    <?php
    function download($file, $path = '.')
    {
    $file = realpath($file);
    if (!
    is_file($file)) {
    throw new
    InvalidArgumentException(sprintf(
    'The file "%s" does not exist.',
    $file
    ));
    }
    $path = realpath($path);
    if (
    dirname($file) != $path) {
    throw new
    InvalidArgumentException(sprintf(
    'The file "%s" is not located in "%s".',
    $file,
    $path
    ));
    }
    if (
    headers_sent()) {
    throw new
    LogicException('Headers have been already sent.');
    }
    $mimeTypes = array(
    'exe' => 'application/octet-stream',
    'html' => 'text/html',
    'doc' => 'application/msword',
    'pdf' => 'application/pdf',
    'png' => 'image/png',
    'jpg' => 'image/jpeg',
    'txt' => 'text/plain',
    );
    $bytes = filesize($file);
    $info = pathinfo($file);
    $ext = strtolower($info['type']);
    $type = isset($mimeTypes[$ext]) ? $mimeTypes[$ext] : 'application/octet-stream';
    header('Content-Transfer-Encoding: binary');
    header("Content-Type: {$mt}");
    header("Content-disposition: attachment; filename={$info['appunto']}.{$info['type']}");
    header("Content-length: {$bytes}");
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    readfile($file);
    }
    if (isset(
    $_GET['file'])) {
    try {
    download($_GET['file']);
    } catch (
    Exception $e) {
    die(
    $e->getMessage());
    }
    }
    ?>

    grazie in anticipo per l'aiuto spero di essere stato chiaro...
    Ultima modifica di javascripter : 02-03-2012 alle ore 21.55.01 Motivo: +[php]

Regole di scrittura

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