本地文件上传到服务器后,服务器的脚本对文件进行保存,一般有两种方式,一种是作为
文件保存到机器的特定目录下,但是这里就有很多诸如文件重名带来的种种不便之处,有的程
序自动改文件名字,把名字加上上传时间等方法以保证文件名的唯一性,这样失去了文件的原
始名字,通过文件名查询特定的文件信息也有很多困难,不利于文件的统一管理;一种是把文
件保存到数据库中利用数据库的强大功能,可以方便的实现文件的各种操作。本文采用的是第
二种方法。
这一组程序演示了,如何将硬盘的一个文件通过网页,上传到服务器的数据库里面,并且
读出文件的内容。
使用说明:
一共有5个程序,说明如下:
1. file.sql --- 本程序要用到的数据库表的结构[注:数据库用的是test]
2. upload.php --- 上传表单
3. submit.php --- 上传处理程序
4. show_info.php --- 显示部分上传的文件信息
5. show_add.php --- 显示[下载]文件
//////////////////////////////////////////////////////////////////////
(1)file.sql ---
//简要说明
保存上传得文件的基本信息的数据库结构,此处注意保存文件内容的字段,使用longtext类型
因为普通的blob类型最大存储64K字节。另外,一般php的默认配置最大上传文件为2M,如果上
传的文件特别大,莫忘了调整php.ini的设置哦。
//文件源码
create table receive(
id int NOT NULL auto_increment, #主键,自动累加
file_data longblob, #文件内容
file_type varchar(100), #文件类型
file_name varchar(255), #文件名字
file_size int, #文件大小
PRIMARY KEY(id) #主键
)
//////////////////////////////////////////////////////////////////////
(2)upload.php ---
//简要说明
上传界面,用户选择文件,然后提交给submit.php处理
值得注意的是一个 MAX_FILE_SIZE的隐藏值域,通过设置其VALUE可
以限制上载文件的大小。
//程序源码
//////////////////////////////////////////////////////////////////////
(3)submit.php ---
//简要说明
把用户上传得文件连同文件的基本信息保存到数据库里
//程序源码
if($myfile != "none" && $myfile != "") { //有了上传文件了
//设置超时限制时间,缺省时间为 30秒,设置为0时为不限时
$time_limit=60;
set_time_limit($time_limit); //
//把文件内容读到字符串中
$fp=fopen($myfile, "rb");
if(!$fp) die("file open error");
$file_data = addslashes(fread($fp, filesize($myfile)));
fclose($fp);
unlink($myfile);
//文件格式,名字,大小
$file_type=$myfile_type;
$file_name=$myfile_name;
$file_size=$myfile_size;
//连接数据库,把文件存到数据库中
$conn=mysql_connect("127.0.0.1","***","***");
if(!$conn) die("error : mysql connect failed");
mysql_select_db("test",$conn);
$sql="insert into receive
(file_data,file_type,file_name,file_size)
values ('$file_data','$file_type','$file_name',$file_size)";
$result=mysql_query($sql);
//下面这句取出了刚才的insert语句的id
$id=mysql_insert_id();
mysql_close($conn);
set_time_limit(30); //恢复缺省超时设置
echo "上传成功--- ";
echo "显示上传文件信息";
}
else {
echo "你没有上传任何文件";
}
?>
//////////////////////////////////////////////////////////////////////
(4)show_info.php ---
//简要说明
从数据库里取出文件的基本信息[文件名和文件大小]。
//程序源码
if(!isset($id) or $id=="") die("error: id none");
//定位记录,读出
$conn=mysql_connect("127.0.0.1","***","***");
if(!$conn) die("error: mysql connect failed");
mysql_select_db("test",$conn);
$sql = "select file_name ,file_size from receive where id=$id";
$result = mysql_query($sql);
if(!$result) die(" error: mysql query");
//如果没有指定的记录,则报错
$num=mysql_num_rows($result);
if($num
//下面两句程序也可以这么写
//$row=mysql_fetch_object($result);
//$name=$row->name;
//$size=$row->size;
$name = mysql_result($result,0,"file_name");
$size = mysql_result($result,0,"file_size");
mysql_close($conn);
echo "
上传的文件的信息:";
echo "
The file's name - $name";
echo "
The file's size - $size";
echo "
附件";
?>
//////////////////////////////////////////////////////////////////////
(5)show_add.php ---
//简要说明
从数据库里取出文件内容
//程序源码
if(!isset($id) or $id=="") die("error: id none");
//定位记录,读出
$conn=mysql_connect("127.0.0.1","***","***");
if(!$conn) die("error : mysql connect failed");
mysql_select_db("test",$conn);
$sql = "select * from receive where id=$id";
$result = mysql_query($sql);
if(!$result) die("error: mysql query");
$num=mysql_num_rows($result);
if($num
$data = mysql_result($result,0,"file_data");
$type = mysql_result($result,0,"file_type");
$name = mysql_result($result,0,"file_name");
mysql_close($conn);
//先输出相应的文件头,并且恢复原来的文件名
header("Content-type:$type");
header("Content-Disposition: attachment; filename=$name");
echo $data;
?>
本程序在 win2000 pro + apache 1.13.19 + php 4.0.5 + mysql 3.23.36 下通过。

使用PHP保存远程图片时如何处理图片压缩?在实际开发中,我们经常需要从网络上获取图片并保存到本地服务器。然而,有些远程图片可能太大,这就需要我们对它们进行压缩以减少存储空间和提高加载速度。PHP提供了一些功能强大的扩展来处理图片压缩,其中最常用的是GD库和Imagick库。GD库是一个流行的图像处理库,它提供了许多功能用于创建、编辑和保存图像。下面是一个使用

如何利用GitLab进行项目文档管理一、背景介绍在软件开发过程中,项目文档是非常重要的资料,不仅能够帮助开发团队了解项目的需求和设计,还能提供给测试团队和客户参考。为了方便项目文档的版本控制和团队协作,我们可以利用GitLab来进行项目文档管理。GitLab是一个基于Git的版本控制系统,除了支持代码管理,还可以管理项目文档。二、GitLab环境搭建首先,我

PHP保存远程图片到本地后如何添加水印并保存?在PHP开发中,经常会遇到需要将远程图片保存到本地的需求。而有时候,我们可能还需要在保存后的图片上添加水印以保护版权或增加额外信息。本文将介绍如何使用PHP保存远程图片到本地,并在保存后的图片上添加水印。一、保存远程图片到本地首先,我们需要使用PHP的文件操作函数将远程图片保存到本地。下面是一个简单的示例代码:&

PHP如何保存远程图片并生成唯一的文件名?在Web开发中,常常会遇到需要保存远程图片到本地服务器的需求。而为了避免文件名冲突,我们一般会采用生成唯一的文件名的方式来保存这些图片。本文将介绍如何使用PHP保存远程图片,并生成唯一的文件名。首先,我们需要使用PHP中的file_get_contents()函数来获取远程图片的二进制数据。代码如下:$url=&

抖音作为一个全球知名的短视频社交平台,靠着其独特的个性化推荐算法赢得了广大用户的青睐。本文将深入研究抖音视频推荐的价值和原理,帮助读者更好地了解和充分利用这一功能。一、什么是抖音推荐视频抖音推荐视频是根据用户的兴趣和行为习惯,利用智能推荐算法为用户筛选和推送个性化视频内容。抖音平台通过分析用户的观看历史、点赞和评论行为、分享记录等数据,从庞大的视频库中精选出最符合用户口味的视频进行推荐。这种个性化推荐系统不仅提高了用户体验,也帮助用户发现更多符合其喜好的视频内容,从而增强用户黏性和留存率。在这个

PHP如何保存远程图片?在开发网站中,经常会遇到需要保存远程图片的情况。比如,我们需要从其他网站上获取一张图片并保存到自己的服务器上,以便在自己的网站上展示。PHP提供了一种简单而有效的方法来实现这个功能。本文将介绍如何使用PHP保存远程图片,并附上代码示例。首先,我们需要获取远程图片的URL。可以通过使用cURL或file_get_contents等函数来

使用PHP保存远程图片时如何将图片信息保存到数据库?在开发过程中,经常需要从远程服务器上下载图片,并将相关信息保存到数据库中。本文将介绍如何使用PHP来完成这个过程。首先,我们需要获取远程图片的内容并保存为本地文件。PHP提供了一个函数file_get_contents()可以用来读取远程文件的内容。演示代码如下:$remoteImageUrl='htt

PHP保存远程图片到服务器的最佳实践在Web开发中,经常会遇到需要将远程图片保存到服务器的需求。比如说,你可能需要从其他网站上抓取图片,或者用户上传了一个远程图片链接。本文将介绍如何用PHP实现这种保存远程图片到服务器的最佳实践。首先,我们需要一个远程图片的URL。假设我们要保存的图片URL为:http://example.com/image.jpg。接下来


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

Dreamweaver CS6
Visual web development tools

SublimeText3 Linux new version
SublimeText3 Linux latest version

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),
