这边只给出一个简单文件上传的demo,文件如果过大可以考虑使用分片上传。
HTML文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>demo</title> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="file" id="file" /> <br /> <input type="submit" name="submit" value="upload" /> </form> </body> </html>PHP后台
<?php //重点说明 因为上传的是视频文件 所以文件大小会超出服务器及php的默认配置 需要手动修改配置 //php配置文件php.ini //file_uploads on 是否允许通过HTTP上传文件的开关。默认为ON即是开 // upload_tmp_dir – 文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹 // upload_max_filesize 8m 望文生意,即允许上传文件大小的最大值。默认为2M // post_max_size 8m 指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M //如果是nginx服务器还需要修改nginx的配置文件 下面是我的nginx修改后的配置 加入了client_max_body_size 100m; // server { // listen 83; // server_name localhost; // root /usr/share/nginx/html; // index index.php; // client_max_body_size 100m; // access_log /var/log/nginx/html-access.log; // error_log /var/log/nginx/html-error.log; // location / { // try_files $uri $uri/ /index.php?$args =404; // #try_files $uri$args $uri$args/ index.php; // } // location ~ .*\.(php|php7.0)?$ { // #fastcgi_pass 127.0.0.1:9000; // fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; // include fastcgi_params; // } // location ~ /\.(ht|svn|git) { // deny all; // } // } //修改完毕后要求重启php,以及服务器 // sudo service php7.0-fpm restart (ubuntu下) // sudo service nginx restart(ubuntu下) //当前脚本文件所在目录 define('ROOT_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR); //上传后的文件数据对象 文件信息都保存在这个数组中 $file = $_FILES["file"]; //格式及大小验证 只接收mp4, rmvb格式 文件大小限制100M 如需添加或更改则在此修改 if (($file["type"] == "video/mp4" || $file["type"] == "video/rmvb") && $file["size"] < 100 * 1024 * 1024) { //上传是否成功判断 if ($file["error"] > 0) { echo "错误信息: " . $file["error"] . "<br />"; } else { //文件是否已经存在 if (file_exists("upload/" . $file["name"])) { echo $file["name"] . " 已存在. "; } else { //是否是通过表单提交的文件 if (is_uploaded_file($file['tmp_name'])) { //保存路径拼接 要求upload目录权限为777 $save_path = ROOT_DIR . 'upload/' . basename($file['name']); //使用函数将上传的临时文件保存到自定义的目录 if (move_uploaded_file($file['tmp_name'], $save_path)) { echo "上传成功, 文件保存在: " . $save_path; } else { echo '文件上传失败'; } } else { echo '文件来源错误'; } } } } else { echo "无效文件,只支持mp4,rmvb格式的100M文件"; } ?>