我正在制作一个上传系统,允许我将文件保存在我的数据库中,然后我想将其显示在表格中,并提供下载选项。
上传代码正在工作,但是当我在桌子上显示它时,它显示文本“数组”。
上传:
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] 删除。
我来说两句