上传word文档,将其存储在mysql上并显示它

Sup*_*own 2 html php mysql ms-word

嗨,我知道PHP的基础知识.我最近重新发现它并教自己新技术.所以请耐心等待......

在这个任务中,我将通过php上传一个MS Word文档,将其存储在mysql上并在需要时检索它.

这可能吗? 是否应该将.doc等文件存储在与名字,姓氏,电子邮件等相同的数据库中.或者我应该将其作为BLOB存储在单独的数据库中以进行文件上载?我不确定mysql是否能够读取.doc文件中的每一行?谢谢.有没有像我这样的初学者在线的例子?我已经完成了这项研究.有人说我不应该使用mysql存储文本文件,其他人说我可以.我目前有:

<form action="insert.php" method="post">
<label>First Name:</label><input type="text" name="firstname" id="firstname"/><br>
<label>Last Name:</label><input type="text" name="lastname" id="lastname"/><br>
<label>Email:</label><input type="text" name="email" id="email"/><br>
<div><label id="upload">Select file to upload:
<input type="file" id="upload" name="upload"/></label></div><br>
     <input type="submit" name=submit value="Submit"/>
</form>
Run Code Online (Sandbox Code Playgroud)

cra*_*ter 6

这里有一些话题需要讨论.

表格

要上载文件,请更改表单enctype属性.

<form action="insert.php" method="post" enctype="multipart/form-data">
    :
</form>
Run Code Online (Sandbox Code Playgroud)

存储文件

您可以将文件存储在数据库中,也可以将其存储在服务器磁盘系统中.无论您选择什么,都无需将文件拆分为其行.将文件存储为单个单元.

阅读此条目,讨论该主题.

这里应该说你的数据库字段应该是一个适当的类型和大小来保存文件.

就个人而言,我是将文件存储在磁盘上的粉丝,以及数据库上的文件名.

文件上传处理

您可以将文件保存在磁盘上.这不是最好的方法,但最简单的说明.在SO上有足够的示例,例如如何上传和保存具有所需名称的文件

 $info = pathinfo($_FILES['upload']['name']);
 $ext = $info['extension']; // get the extension of the file
 $newname = "newname.".$ext; 

 $target = 'mydocs/'.$newname;
 move_uploaded_file( $_FILES['upload']['tmp_name'], $target);
Run Code Online (Sandbox Code Playgroud)

下载文件 要显示和下载文件,只需将内容打印到浏览器即可.

ob_start();
 // do things. See below
ob_clean();
flush();
readfile($file);
ob_flush();
Run Code Online (Sandbox Code Playgroud)

这将显示文件,可能会混淆浏览器.要告诉浏览器将文件作为Word文档处理,您必须在发送文件之前将适当的标头发送到浏览器.

    ob_start();
    if(isset($_REQUEST['dlink']))
    {
        $file = $_REQUEST['dlink'];
        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename='.basename($file));
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Pragma: public');
        header('Content-Length: ' . filesize($file));
        ob_clean();
        flush();
        readfile($file);
         exit;
    }
ob_flush();
Run Code Online (Sandbox Code Playgroud)