php怎么写一个上传附件,PHP如何上传文件?详细实现代码

你是否想过网站如何使用PHP构建其文件上传系统?在这里, 我们将了解文件上传过程。你可能会想到一个问题-"我们是否可以通过该系统上传任何类型的文件?"。答案是可以的, 我们可以上传具有不同扩展名的文件。

让我们制作一个HTML表单, 用于将文件上传到服务器。

index.html

File Upload Form

Upload File

Filename:

Note:Only .jpg, .jpeg, .png formats allowed to a max size of 2MB.

现在, 该写一个能够处理文件上传系统的php脚本了。

file-upload-manager.php<?php

// Check if the form was submitted

if ( $_SERVER [ "REQUEST_METHOD" ] == "POST" )

{

// Check if file was uploaded without errors

if (isset( $_FILES [ "photo" ]) && $_FILES [ "photo" ][ "error" ] == 0)

{

$allowed_ext = array ( "jpg" => "image/jpg" , "jpeg" => "image/jpeg" , "gif" => "image/gif" , "png" => "image/png" );

$file_name = $_FILES [ "photo" ][ "name" ];

$file_type = $_FILES [ "photo" ][ "type" ];

$file_size = $_FILES [ "photo" ][ "size" ];

// Verify file extension

$ext = pathinfo ( $filename , PATHINFO_EXTENSION);

if (! array_key_exists ( $ext , $allowed_ext ))

die ( "Error: Please select a valid file format." );

// Verify file size - 2MB max

$maxsize = 2 * 1024 * 1024;

if ( $file_size > $maxsize )

die ( "Error: File size is larger than the allowed limit." );

// Verify MYME type of the file

if (in_array( $file_type , $allowed_ext ))

{

// Check whether file exists before uploading it

if ( file_exists ( "upload/" . $_FILES [ "photo" ][ "name" ]))

echo $_FILES [ "photo" ][ "name" ]. " is already exists." ;

else

{

move_uploaded_file( $_FILES [ "photo" ][ "tmp_name" ], "uploads/" . $_FILES [ "photo" ][ "name" ]);

echo "Your file was uploaded successfully." ;

}

}

else

{

echo "Error: Please try again." ;

}

}

else

{

echo "Error: " . $_FILES [ "photo" ][ "error" ];

}

}

?>

在上面的脚本中, 一旦我们提交了表单, 以后我们就可以通过PHP超全局关联数组$ _FILES访问信息。除了使用$ _FILES数组的形式外, 许多内置函数也起着主要作用。上传完文件后, 在脚本中我们将检查服务器的请求方法, 如果它是POST, 则它将继续进行, 否则系统将引发错误。稍后, 我们访问了$ _FILES数组以获取文件名, 文件大小和文件类型。一旦获得了这些信息, 就可以验证文件的大小和类型。最后, 我们在要上传文件的文件夹中搜索, 以检查文件是否已经存在。如果没有, 我们已经使用move_uploaded_file()将文件从临时位置移动到服务器上的所需目录, 我们就完成了。

输出如下

查看以下更多文件上传的相关的内容:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值