我想将.wav文件作为blob上传到数据库。我不想将其上传到目录。
我认为我已成功将文件作为blob上传到数据库,但是当我想下载文件时,它会下载没有扩展名的普通文件。我期待像.wav这样的文件扩展名等。
这是我的表
create table content(
id int primary key auto_increment,
cid int(11),
data_file varchar(200),
data longblob);
alter table content add column(
name1 varchar(200),
type1 varchar(200),
size1 varchar(200));
以下是上传代码
<?php
if(isset($_FILES['file']) and !$_FILES['file']['error']){
echo $tt= strip_tags($_POST['idb']);
//$fname = "155" . ".wav";
$fname = time() . ".wav";
$tmpName = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
//move_uploaded_file($_FILES['file']['tmp_name'], "uploads/" . $fname);
include('db.php');
$type1= $_FILES["file"]["type"];
$size1=$_FILES["file"]["size"];
$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);
$statement = $db->prepare("INSERT INTO content (cid,data_file,data,name1,type1,size1) values
(:cid,:data_file,:data,:name1,:type1,:size1)");
$query= $statement->execute(array(
':cid' => $tt,
':data_file' => $fname,
':data' => $content,
':name1' => $name,
':type1' => $type1,
':size1' => $size1
));
fclose($fp);
// move_uploaded_file($_FILES['file']['tmp_name'], "./uploads/" . $fname);
}
?>
以下是下载代码
<?php
include('db.php');
$result = $db->prepare('SELECT * FROM content');
$result->execute(array());
$count = $result->rowCount();
while($row = $result->fetch()){
$content=htmlentities($row['data']);
$name=htmlentities($row['name1']);
$type=htmlentities($row['type1']);
$size=htmlentities($row['size1']);
$bb=htmlentities($row['bb']);
}
header("Content-length: $size");
header("Content-type: $type");
header("Content-Disposition: attachment; filename=$name");
echo $content;
?>
有人可以帮我解决无法从数据库下载.wav文件的问题吗?