type 属性为 file 的 input 元素可以通过表单提交文件 (上传文件), 服务端 PHP 可以通过 $_FILES 获取上传的文件信息
- <?PHP
- if ($_SERVER['REQUEST_METHOD'] === 'POST') {
- var_dump($_FILES); // 接收文件, 使用一个 叫做 $_FILES 超全局成员
- }
- ?>
- <!DOCTYPE html>
- <HTML lang="en">
- <head>
- <meta charset="UTF-8">
- <title>
- Document
- </title>
- </head>
- <body>
- <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
- <input type="text" name="bar">
- -->
- <input type="file" name="img">
- <button>
- 提交
- </button>
- </form>
- </body>
- </HTML>
1如果一个表单中有文件域 (文件上传), 必须将表单的 method 设置为 post , enctype 设置为 multipart / form-data
2接收文件, 使用一个叫做 $_FILES 超全局成员
- <?PHP
- if($_SERVER['REQUEST_METHOD']==='POST')
- {
- postback();
- }
- function postback(){
- if(!isset($_FILES['fileUpload'])){
- $GLOBALS['message'] ="客户端提交的表单内容中根本没有文件域";
- return;
- }
- $fileUpload=$_FILES['fileUpload'];
- echo $fileUpload['error'];
- if($fileUpload['error'] !== UPLOAD_ERR_OK){
- $GLOBALS['message']="上传失败"; // 服务端没有接收到上传的文件
- return;
- }
- $sourceDir = $fileUpload['tmp_name']; // 源文件在哪
- $targetDir = './targetDir/' . $fileUpload['name']; // 目标放在哪
- $moved=move_uploaded_file($sourceDir,$targetDir);
- if(!$moved){
- $GLOBALS['message']="上传失败";
- return;
- }
- }
- ?>
- <!DOCTYPE HTML>
- <HTML lang="en">
- <head>
- <meta charset="UTF-8">
- <title>
- 文件上传
- </title>
- </head>
- <body>
- <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
- <input type="file" name="fileUpload">
- <button>
- 上传
- </button>
- <?PHP if(isset($message)): ?>
- <?PHP echo $message;?>
- <?PHP endif ?>
- </form>
- </body>
- </HTML>
- 1$filesUpload => arrar(5) {
- ["name"] => string
- }
来源: http://www.bubuko.com/infodetail-3213054.html