php文件上传模块,实现PHP文件上传模块_PHP教程

本文介绍了如何在Opensuse12.2的LAMP环境下配置PHP文件上传功能,重点是修改php.ini设置如upload_max_filesize和post_max_size,创建上传目录并设置权限,以及展示了一个简单的HTML表单和PHP处理脚本。用户可以选择上传图片或PDF文件,上传后的文件会存储在指定目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先确保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]

enctype="multipart/form-data">

Filename:

enctype="multipart/form-data">

Filename:

upload_file.php

[php]

if(($_FILES["file"]["type"] == "image/png")||($_FILES["file"]["type"] == "application/pdf"))

{

if ($_FILES["file"]["error"] > 0)

{

echo "Return Code: " . $_FILES["file"]["error"] . "

";

}

else

{

echo "Upload: " . $_FILES["file"]["name"] . "

";

echo "Type: " . $_FILES["file"]["type"] . "

";

echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb

";

echo "Temp file: " . $_FILES["file"]["tmp_name"] . "

";

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,用来处理与用户的交互,注意按钮的属性。运行起来是这样的

1242005Q5-0.png

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

1242005212-1.png

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中看到上传好的文件了。

124200M62-2.png

做到这里已经差不多了,但还可以扩展,比如上传大文件时显示进度条,比如上传文件同时写入数据库,然后在页面中显示文件名,点击可以下载。

时间关系,就到这里。

http://www.bkjia.com/PHPjc/477552.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/477552.htmlTechArticle首先确保LAMP已经配置成功。 环境:Opensuse12.2 LAMP 今天要实现的是php的文件上传模块,以上传图片和pdf文档为例。 步骤如下: 修改php.ini...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值