如何在php中上传下载附件并以二进制的形式保存到数据库中的
解决方案 »
- 不错的PHP zend 视频教程
- 输入二级域名tanteng.xiao-tan.com,打开不是里面的index.html!
- 求一个PHP ORACLE 10G的分页代码
- php这有什么问题吗?奶奶地用不了!!!
- sql查询身份证是否重复
- 散分!国庆快乐,中秋快乐!
- thinkphp做下载系统,点击下载的同时在数据库里更新下载次数,该怎么做
- 关于php 5.4和php 5.2的兼容问题
- PHPCMS提交内容出现Fatal error:Call to undefined function...
- 小程序success返回数据问题
- 安装extplorer 求助
- 【求助】网站不良词汇过滤 不良词汇征集
CREATE TABLE IF NOT EXISTS `upload` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`filename` varchar(255) NOT NULL,
`type` varchar(255) NOT NULL,
`data` longblob NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8PHP代码:
<?php
header('content-type: text/html; charset=utf-8');$mysqli = new mysqli('localhost', 'root', 'root', 'csdn');
$mysqli->set_charset('utf8');function alert($msg)
{
echo '<script type="text/javascript">';
echo 'alert("', $msg, '");';
echo '</script>';
}$action = isset($_GET['action']) ? $_GET['action'] : '';if ($action == 'upload')
{
if (is_uploaded_file($_FILES['upload']['tmp_name']))
{
$filename = $_FILES['upload']['name'];
$type = $_FILES['upload']['type'];
$handle = fopen($_FILES['upload']['tmp_name'], 'rb');
$data = fread($handle, filesize($_FILES['upload']['tmp_name']));
fclose($handle);
$stmt = $mysqli->prepare('INSERT INTO `upload` (`filename`, `type`, `data`) VALUES (?, ?, ?)');
$stmt->bind_param('sss', $filename, $type, $data);
if (!$stmt->execute()) alert('上传失败!');
}
else alert('上传失败!');
}if ($action == 'download')
{
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
if ($id > 0)
{
$stmt = $mysqli->prepare('SELECT `filename`, `type`, `data` FROM `upload` WHERE `id`=?');
$stmt->bind_param('i', $id);
if ($stmt->execute() && $stmt->store_result() && $stmt->num_rows > 0)
{
$stmt->bind_result($filename, $type, $data);
$stmt->fetch();
header('content-type: ' . $type);
header('content-disposition: attachment; filename=' . $filename);
echo $data;
exit;
}
else alert('文件不存在!');
}
else alert('文件不存在!');
}$result = $mysqli->query('SELECT `id`, `filename` FROM `upload`');
if ($result && $result->num_rows > 0)
{
echo '<ul>';
while ($row = $result->fetch_object())
{
echo '<li><a href="', basename(__FILE__), '?action=download&id=', $row->id, '">';
echo $row->filename, '</a></li>';
}
echo '</ul>';
}
else echo '没有文件<br/>';
?>
<hr/>
<form action="<?php echo basename(__FILE__);?>?action=upload" method="post" enctype="multipart/form-data">
<input type="file" name="upload"/>
<input type="submit" value="上传"/>
</form>