怎么用PHP做上传文件,如何使用PHP上传文件【附源代码】

PHP文件上传在网站开发中应用十分广泛,例如用户上传头像、在文章中插入图片、上传附件等等。今天就讲讲如何使用PHP上传文件。

首先创建一个HTML表单,用于提交上传的文件, 这里需要注意的是,在上传文件的表单中,必须使设置enctype='multipart/form-data'来确保匿名上载文件的正确编码。

action='./upload.php'name='upload_form'method='post'enctype='multipart/form-data'>type='file'name='img'>type='submit'name='submit'value='上传'>

input标签的 type='file' 属性规定了应该把输入作为文件来处理。

用户选择好需要上传的文件以后,点击上传按钮。通过post方式提交给upload.php文件。

当upload.php接收到提交过来的文件时,PHP会用一个全局数组 $_FILES 来储存被上传的文件的一些信息,当我们使用 var_dump() 函数打印 $_FILES 数组可以获得以下信息$_FILES['img']['name'] - 被上传文件的名称

$_FILES['img']['type'] - 被上传文件的类型

$_FILES['img']['size'] - 被上传文件的大小,以字节计

$_FILES['img']['tmp_name'] - 存储在服务器的文件的临时副本的名称

$_FILES['img']['error'] - 由文件上传导致的错误代码

我们在upload.php文件中输出这些信息:

这是一种非常简单文件上传方式。但是基于安全方面的考虑,我们应该做一些限制,例如限制用户只能上传格式为.png 或者 .gif 的图片,且大小必须小于100kb。

if($_FILES['img']['size']<10000&&$_FILES['img']['type']=='image/png'||$_FILES['img']['type']=='image/gif'){if($_FILES['img']['error']>0){//当error为0表示上传成功echo'错误信息: '.$_FILES['img']['error'].'

';}else{echo'文件名称: '.$_FILES['img']['name'].'

';echo'文件类型: '.$_FILES['img']['type'].'

';echo'文件大小: '.($_FILES['img']['size']/1024).' Kb

';echo'文件临时存储路径: '.$_FILES['img']['tmp_name'];}}else{echo'无效的文件!';}

上面的例子虽然输出了文件的信息,但是并没有将文件储存在服务器上,只是将被上传的文件放在了服务器的一个临时目录。接下来我们要做的就是使用 move_uploaded_file()函数,把文件从临时目录中移动到我们指定的目录下面。

move_uploaded_file()语法:

move_uploaded_file('需要移动的文件', '文件的新位置')

phpif($_FILES['img']['size']<10000&&$_FILES['img']['type']=='image/png'||$_FILES['img']['type']=='image/gif'){if($_FILES['img']['error']>0){//当error为0表示上传成功echo'错误信息: '.$_FILES['img']['error'].'

';}else{echo'文件名称: '.$_FILES['img']['name'].'

';echo'文件类型: '.$_FILES['img']['type'].'

';echo'文件大小: '.($_FILES['img']['size']/1024).' Kb

';echo'文件临时存储路径: '.$_FILES['img']['tmp_name'].'

';move_uploaded_file($_FILES['img']['tmp_name'],'upload/'.$_FILES['img']['name']);echo'移动后的路径: '.'upload/'.$_FILES['img']['name'];}}else{echo'无效的文件!';}?>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值