获取上传的文件并显示下载

佩德罗 D.

我正在制作一个上传系统,允许我将文件保存在我的数据库中,然后我想将其显示在表格中,并提供下载选项。

上传代码正在工作,但是当我在桌子上显示它时,它显示文本“数组”。

上传:

PHP:

if(isset($_POST['Enviar'])){    
$nome = $_POST['nome'];
//$tamanho = $_POST['tamanho'];
$ficheiro = $_FILES['ficheiro'];

include_once('DataAccess.php');
$da = new DataAccess();

    $da->upload($nome, $tamanho, $ficheiro);
    echo "<script>window.location.assign('upload.php')</script>";
}

HTML:

<form method="post" enctype="multipart/form-data">
<table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
<tr> 
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input placeholder="Nome" name="nome" type="text" id="nome"> 
<input name="ficheiro" type="file" id="ficheiro">
<input name="Enviar" type="submit" class="box" id="Enviar" value=" Upload ">
</tr>
</form>
</table>
</form>

数据访问:

function upload($nome, $tamanho, $ficheiro){
            $query = "insert into upload (nome, tamanho, ficheiro)
                values 
                ('$nome','null','$ficheiro')";

    $this->connect();
    $res = $this->execute($query);
    $this->disconnect();
    return $res;
}
function getupload(){
    $query = "SELECT * FROM upload WHERE id = id";

    $this->connect();
    $res = $this->execute($query);
    $this->disconnect();
    return $res;
}

下载文件:

HTML:

<table border="1">
<tr>
<td>Id</td>
<td>Nome</td>
<td>Tamanho</td>
<td>Ficheiro</td>
</tr>
</table>

PHP:

            include_once('DataAccess.php');
            $da = new DataAccess();
            $res = $da->getUpload();
            while($row = mysqli_fetch_object($res)){
            echo "<tr>
                    <td>$row->id</td>
                    <td>$row->nome</td>
                    <td>$row->tamanho</td>
                    <td>$row->ficheiro</td>
                </tr><br>";
            }
托多·西蒙诺夫

这是因为$_FILES['ficheiro']它只是一个数组,而您正试图将其放入数据库中。

试试这个/以防你想将文件内容保存到数据库/:

$fp      = fopen($_FILES['ficheiro']['tmp_name'], 'r');
$content = fread($fp, filesize($_FILES['ficheiro']['tmp_name']));
$content = addslashes($content);
fclose($fp);

然后插入$content到您的数据库表中。

$da->upload($nome, $tamanho, $content);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章