我正在制作一个允许我将文件保存在我的数据库中的上传系统,然后我想在一个表格中显示它,并可以选择下载它。
上传代码正常工作,但当我在桌面上显示时,它会显示文字"数组"。
上载:
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>";
}
答案 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; - 显示?
亲切的问候 弗洛里安