文件上传和下载无法在PHP中运行

时间:2018-03-01 02:23:21

标签: php

我想将.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文件的问题吗?

0 个答案:

没有答案