php个人档案,用 PHP 上传档案

建文 HTML 表单

要制作用作上传档案的表单与传统的表单差不多,但必须将表单中的 enctype 属性设成 multipart/form-data。enctype 属性是指定浏览器对表单中的参数进行编码的方法,默认值为 application/x-www-form-urlencoded。

以下是建立表单的例子:

upload.html

A simple upload form

A simple upload form

Enter file name:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Asimpleuploadform

Asimpleuploadform

Enterfilename:

处理上传档案

建立了以上的 HTMl 表单后,下一步要做的就是后端的处理。在 PHP 中可以透过二维阵列 $HTTP_POST_FILES 或 $_FILES 来存取所上传的档案详细内容。就以以上表单为例,输入元素名为 userfile,各阵列元素为:

$_FILES[‘userfile’][‘name’] — 档案在客户端电脑上的档案名称

$_FILES[‘userfile’][‘type’] — 档案的 MIME 类型,例如 “image/gif”

$_FILES[‘userfile’][‘size’] — 上传档案的档案大小,单为为 bytes

$_FILES[‘userfile’][‘tmp_name’] — 上传档案储存在服务器端的暂存盘案名

$_FILES[‘userfile’][‘error’] — 上传档案的错误号码

上传档案的 PHP 程式

以上介绍了建立上传档案用的表单及存取阵列,以下便建立上传档案的程式。首先需要建立一个目录作储存盘案,并需要确定 web server 有写入的权限,一般设成 777 就可以,假设使用以上的上传表单,以及上传目录是 “/var/www/uploads/”,以下是程式码范例会显示上传档案资讯以及上传档案:

upload.php

A simple upload form

Uploaded File Details

// display file details

echo "Filename: " . $_FILES['userfile']['name'] . "
";

echo "Temporary Name: " . $_FILES['userfile']['tmp_name'] . "
";

echo "Size: ". $_FILES['userfile']['size'] . "
";

echo "Type: ". $_FILES['userfile']['type'] . "
";

// copy file here

if (@copy($_FILES['userfile']['tmp_name'], "/var/www/uploads/" . $_FILES['userfile']['name'])) {

echo "File successfully upload";

} else {

echo "Error: failed to upload file";

}

?>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

Asimpleuploadform

UploadedFileDetails

// display file details

echo"Filename: ".$_FILES['userfile']['name']."
";

echo"Temporary Name: ".$_FILES['userfile']['tmp_name']."
";

echo"Size: ".$_FILES['userfile']['size']."
";

echo"Type: ".$_FILES['userfile']['type']."
";

// copy file here

if(@copy($_FILES['userfile']['tmp_name'],"/var/www/uploads/".$_FILES['userfile']['name'])){

echo"File successfully upload";

}else{

echo"Error: failed to upload file";

}

?>

以上传子使用了 copy 函式上传档案,其实 PHP 对上传档案已提供了两个专用函式,它们是 move_uploaded_file() 及 is_uploaded_file(),有兴趣的朋友可参考 PHP 使用手册关于这两个函式的简介及用法。

程式的改进

以上的上传程式只做了最基本的上传动作,在实际应用中还是会有问题,例如不能容纳相同的档案名称、同一目录档案过多时存取效率减低等问题。但本文只作一个入门的介绍,希望日后可以写一篇更深入的文章作介绍。

你可能感兴趣的内容:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值