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

时间:2017-05-19 17:25:46

标签: php html

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

上传代码正常工作,但当我在桌面上显示时,它会显示文字"数组"。

上载:

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>";
            }

2 个答案:

答案 0 :(得分:1)

beacuse system '/bin/bash', '--init-file只是一个数组,你试图把它放在一个数据库中。

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

$_FILES['ficheiro']

然后将$fp = fopen($_FILES['ficheiro']['tmp_name'], 'r'); $content = fread($fp, filesize($_FILES['ficheiro']['tmp_name'])); $content = addslashes($content); fclose($fp); 插入数据库表。

$content

答案 1 :(得分:0)

这会将文件内容绑定到db。确保db上的columne是二进制保存。

function upload($nome, $tamanho, $ficheiro) 
{
    $c = base64_encode(file_get_contents($_FILES['ficheiro']['tmp_name']));

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

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

}

什么是:     &#34; 。 print_r($ row-&gt; ficheiro)。 &#34; - &LT; - 显示?

亲切的问候 弗洛里安