2014-09-05
首先确保LAMP已经配置成功。
环境:Opensuse12.2 LAMP
今天要实现的是php的文件上传模块,以上传图片和pdf文档为例。
步骤如下:
修改php.ini
linux下的php.ini放在了/etc/php5/apache2文件夹下,终端运行
[plain]
sudo vim /etc/php5/apache2/php.ini
sudo vim /etc/php5/apache2/php.ini
用“/×××”在vim中查找下面的值,进行修改:
upload_max_filesize = 10M
该选项表示上传文件的最大字节长度。默认2M,改为10M
post_max_size = 12M
该选项代表允许POST数据的最大字节长度,默认是8M,建议设定值比upload_max_filesize略大。
memory_limit默认128M,如果要上传的文件大小超过这个值,就需要修改,这里不需要修改。
修改完之后保存。
创建项目
在/srv/www/htdocs/创建test2文件夹,里面创建两个文件:upload.html,upload_file.php.还要创建一个upload文件夹用于存放上传的文件。
首先对upload文件夹处理一下,修改它的权限。
终端运行:
[plain]
sudo chmod 777 upload -R
sudo chmod 777 upload -R
下面是代码清单。
upload.html
[html]
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
upload_file.php
[php]
<?php
if(($_FILES["file"]["type"] == "image/png")||($_FILES["file"]["type"] == "application/pdf"))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
<?php
if(($_FILES["file"]["type"] == "image/png")||($_FILES["file"]["type"] == "application/pdf"))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
简单解释一下。
html文件中就是一个form,用来处理与用户的交互,注意按钮的属性。运行起来是这样的

选择好文件,点击Submit之后,后台的处理就交给php了。

php通过全局数组_FILE获取文件的一些属性,然后对其进行相应的处理。
$_FILES["file"]["error"] 中放的是出错代码,对应的错误如下:
编码
值
说明
UPLOAD_ERR_OK
0
文件成功上传
UPLOAD_ERR_INI_SIZE
1
文件大小比php.ini中upload_max_filesize指定值要大
UPLOAD_ERR_FORM_SIZE
2
文件的 小比表单的MAX_FILE_SIZE指定的值大
UPLOAD_ERR_PARTIAL
3
文件上传不完整(可能因为请求时间过长被终止)
UPLOAD_ERR_NO_FILE
4
没有文件随着这个请求上传
UPLOAD_ERR_NO_TMP_DIR
6
在php.ini中没有指定临时文件夹
文件上传好之后就可以在upload中看到上传好的文件了。

做到这里已经差不多了,但还可以扩展,比如上传大文件时显示进度条,比如上传文件同时写入数据库,然后在页面中显示文件名,点击可以下载。
时间关系,就到这里。
1
CI框架连接数据库配置操作以及多数据库操作
09-05
2
asp 简单读取数据表并列出来 ASP如何快速从数据库读取大量数据
05-17
3
C语言关键字及其解释介绍 C语言32个关键字详解
04-05
4
C语言中sizeof是什么意思 c语言里sizeof怎样用法详解
04-26
5
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
09-05
6
将视频设置为Android手机开机动画的教程
12-11
7
PHP中的(++i)前缀自增 和 (i++)后缀自增
09-05
8
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
04-12
常用dos命令及语法
2014-09-27
PHP中include和require区别之我见
2014-09-05
如何安装PHPstorm并配置方法教程 phpstorm安装后要进行哪些配置
2017-05-03
php递归返回值的问题
2014-09-05
单片机编程好学吗?单片机初学者怎样看懂代码
2022-03-21
PHP 教程之如何使用BLOB存取图片信息实例
2014-09-05
学ug编程如何快速入门?
2022-03-17
PHP数组函数array
2014-09-05
学习使用C语言/C++编程的7个步骤!超赞~
2022-03-20
零基础的初学者怎样学习java,或者应该先学什么?
2022-03-21
tap ninja游戏下载v7.1.9 安卓版
其它手游 77.74MB
下载
德雷姆代尔手机版下载v2.7.0 安卓正式版
其它手游 187.16MB
下载
火柴人龙影战士中文版下载v2.0.0 安卓版
其它手游 101.44MB
下载
火柴人战士暗影龙珠格斗游戏下载v2.0.0 安卓版
其它手游 101.44MB
下载
火柴人勇士超级龙影搏斗最新版下载v2.0.0 安卓版
其它手游 101.44MB
下载
安洁拉世界奇幻之旅游戏下载v2.9 安卓版
其它手游 338.88MB
下载
坦克沙盒游戏手机版(坦克物理模拟)下载v9.0 安卓版
其它手游 241.7MB
下载
太空人抽卡对决手机版下载v1.6 安卓版
其它手游 77.61MB
下载棕熊露营旅行游戏下载v1.1.0 安卓版
下载
回家的猫游戏下载v2.5.18 安卓版
下载
蜗牛鲍勃3游戏(snail bob 3)下载v1.0.34 安卓版
下载
snail bob3最新版下载v1.0.34 安卓版
下载
西梅小说手机版v1.0
下载
超级舰队3k破解版下载v10.3 安卓最新版
下载
房间的秘密2起点官方版下载v1.2.4.df926432 安卓版
下载
葫芦娃tv版小y游戏下载v3.0.8 安卓版
下载