文件上传之SWFUpload插件(代码) php  /  管理员 发布于 6年前   257
下面通过一段代码给大家演示下,主要分为1.前台文件index.html和 2.后台文件upload.php。具体代码如下所示:1.前台文件index.html SWFUpload SWFUpload v2.2.0 点击“浏览”按钮,选择您要上传的文档文件后,系统将自动上传并在完成后提示您。 请勿上传包含中文文件名的文件! 快速上传 0 个文件已上传 Hanization By Leo.C,2.后台文件upload.php $multiplier*(int)$POST_MAX_SIZE && $POST_MAX_SIZE) { header("HTTP/1.1 500 Internal Server Error"); echo "POST exceeded maximum allowed size."; exit(0); } // 基本设置 $save_path = getcwd() . "/file/"; // 文件上传位置 $upload_name = "Filedata"; $max_file_size_in_bytes = 2147483647; // 2GB $extension_whitelist = array("doc", "txt", "jpg", "gif", "png"); // 允许文件类型 $valid_chars_regex = '.A-Z0-9_ !@#$%^&()+={}\[\]\',~`-'; // 文件名规则 // 其他变量 $MAX_FILENAME_LENGTH = 260; $file_name = ""; $file_extension = ""; $uploadErrors = array( 0=>"文件上传成功", 1=>"上传的文件超过了 php.ini 文件中的 upload_max_filesize directive 里的设置", 2=>"上传的文件超过了 HTML form 文件中的 MAX_FILE_SIZE directive 里的设置", 3=>"上传的文件仅为部分文件", 4=>"没有文件上传", 6=>"缺少临时文件夹" ); // 检测文件是否上传正确 if (!isset($_FILES[$upload_name])) { HandleError("No upload found in \$_FILES for " . $upload_name); exit(0); } else if (isset($_FILES[$upload_name]["error"]) && $_FILES[$upload_name]["error"] != 0) { HandleError($uploadErrors[$_FILES[$upload_name]["error"]]); exit(0); } else if (!isset($_FILES[$upload_name]["tmp_name"]) || !@is_uploaded_file($_FILES[$upload_name]["tmp_name"])) { HandleError("Upload failed is_uploaded_file test."); exit(0); } else if (!isset($_FILES[$upload_name]['name'])) { HandleError("File has no name."); exit(0); } // 检测文件尺寸 $file_size = @filesize($_FILES[$upload_name]["tmp_name"]); if (!$file_size || $file_size > $max_file_size_in_bytes) { HandleError("File exceeds the maximum allowed size"); exit(0); } if ($file_size <= 0) { HandleError("File size outside allowed lower bound"); exit(0); } // 检测文件名字为空 $file_name = preg_replace('/[^'.$valid_chars_regex.']|\.+$/i', "", basename($_FILES[$upload_name]['name'])); if (strlen($file_name) == 0 || strlen($file_name) > $MAX_FILENAME_LENGTH) { HandleError("Invalid file name"); exit(0); } // 检测重名文件 if (file_exists($save_path . $file_name)) { HandleError("File with this name already exists"); exit(0); } // 检测后缀名 $path_info = pathinfo($_FILES[$upload_name]['name']); $file_extension = $path_info["extension"]; $is_valid_extension = false; foreach ($extension_whitelist as $extension) { if (strcasecmp($file_extension, $extension) == 0) { $is_valid_extension = true; break; } } if (!$is_valid_extension) { HandleError("Invalid file extension"); exit(0); } // 保存文件 if (!@move_uploaded_file($_FILES[$upload_name]["tmp_name"], $save_path.$file_name)) { HandleError("文件无法保存."); exit(0); } // 成功输出 echo "File Received"; exit(0); function HandleError($message) { header("HTTP/1.1 500 Internal Server Error"); echo $message;}?>以上代码就是实现文件上传之SwFUpload插件的全部内容,希望大家喜欢。您可能感兴趣的文章:使用SWFUpload实现无刷新上传图片PHP swfupload图片上传的实例代码SwfUpload在IE10上不出现上传按钮的解决方法swfupload ajax无刷新上传图片实例代码phpcms模块开发之swfupload的使用介绍SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享为SWFUpload增加ASP版本的上传处理程序swfupload 多文件上传实现代码swfupload使用代码说明文件上传插件SWFUpload的使用指南 上一条: 详解Grunt插件之LiveReload实现页面自动刷新(两种方案) 下一条: discuz图片顺序混乱解决方案 昵称: 邮箱: 0条评论 (评论内容有缓存机制,请悉知!)最新最热 分类目录 人生(杂谈) 技术 linux Java php 框架(架构) 前端 ThinkPHP 数据库 微信(小程序) Laravel Redis Docker Go swoole Windows Python 苹果(mac/ios) 相关文章 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论) Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论) 一个简单整合微信、支付宝、百度、字节跳动支付方式的包推荐(0个评论) 如何在PHP中检测n+1查询问题及场景示例(0个评论) 使用Lawman(Pest PHP插件)为Saloon API集成添加架构测试(0个评论) 近期文章 程序员兼职引起纠纷之如何安全兼职?(0个评论) go + websocket实现即时通信之私聊/群聊功能示例(0个评论) go + websocket实现并发下载文件及中途取消下载功能示例(0个评论) Laravel 11.7版本发布-适用于MySQL的Rule::array()和whereJsonOverlaps()(0个评论) 在go+ gin框架中使用gomail.v2实现邮件通知功能(0个评论) 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论) Energy GUI桌面应用开发之js和go之间交互示例(0个评论) 在go语言中gin + gorm多表关联实现一个店铺商品搜索功能示例(0个评论) 在go语言中gin + gorm实现一个店铺关注/取消关注的功能示例(0个评论) 2024年五一假期安排和今年的重要事件回顾(0个评论) 近期评论 123 在Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分.. 原梓番博客 在在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。.. 博主 在佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章.. 1111 在佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光.. 路人 在php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了.. 文章归档 2016-10 2016-11 2017-06 2017-07 2017-08 2017-09 2017-11 2017-12 2018-01 2018-02 2018-03 2020-03 2020-04 2020-05 2020-06 2020-07 2020-09 2021-02 2021-03 2021-04 2021-05 2021-06 2021-07 2021-08 2021-09 2021-10 2021-11 2021-12 2022-01 2022-02 2022-05 2022-06 2022-07 2022-08 2022-09 2022-10 2022-11 2022-12 2023-01 2023-02 2023-03 2023-04 2023-05 2023-06 2023-07 2023-08 2023-09 2023-10 2023-11 2023-12 2024-01 2024-02 2024-03 2024-04 2024-05 Top
下面通过一段代码给大家演示下,主要分为1.前台文件index.html和 2.后台文件upload.php。具体代码如下所示:
1.前台文件index.html SWFUpload SWFUpload v2.2.0 点击“浏览”按钮,选择您要上传的文档文件后,系统将自动上传并在完成后提示您。 请勿上传包含中文文件名的文件! 快速上传 0 个文件已上传 Hanization By Leo.C,2.后台文件upload.php $multiplier*(int)$POST_MAX_SIZE && $POST_MAX_SIZE) { header("HTTP/1.1 500 Internal Server Error"); echo "POST exceeded maximum allowed size."; exit(0); } // 基本设置 $save_path = getcwd() . "/file/"; // 文件上传位置 $upload_name = "Filedata"; $max_file_size_in_bytes = 2147483647; // 2GB $extension_whitelist = array("doc", "txt", "jpg", "gif", "png"); // 允许文件类型 $valid_chars_regex = '.A-Z0-9_ !@#$%^&()+={}\[\]\',~`-'; // 文件名规则 // 其他变量 $MAX_FILENAME_LENGTH = 260; $file_name = ""; $file_extension = ""; $uploadErrors = array( 0=>"文件上传成功", 1=>"上传的文件超过了 php.ini 文件中的 upload_max_filesize directive 里的设置", 2=>"上传的文件超过了 HTML form 文件中的 MAX_FILE_SIZE directive 里的设置", 3=>"上传的文件仅为部分文件", 4=>"没有文件上传", 6=>"缺少临时文件夹" ); // 检测文件是否上传正确 if (!isset($_FILES[$upload_name])) { HandleError("No upload found in \$_FILES for " . $upload_name); exit(0); } else if (isset($_FILES[$upload_name]["error"]) && $_FILES[$upload_name]["error"] != 0) { HandleError($uploadErrors[$_FILES[$upload_name]["error"]]); exit(0); } else if (!isset($_FILES[$upload_name]["tmp_name"]) || !@is_uploaded_file($_FILES[$upload_name]["tmp_name"])) { HandleError("Upload failed is_uploaded_file test."); exit(0); } else if (!isset($_FILES[$upload_name]['name'])) { HandleError("File has no name."); exit(0); } // 检测文件尺寸 $file_size = @filesize($_FILES[$upload_name]["tmp_name"]); if (!$file_size || $file_size > $max_file_size_in_bytes) { HandleError("File exceeds the maximum allowed size"); exit(0); } if ($file_size <= 0) { HandleError("File size outside allowed lower bound"); exit(0); } // 检测文件名字为空 $file_name = preg_replace('/[^'.$valid_chars_regex.']|\.+$/i', "", basename($_FILES[$upload_name]['name'])); if (strlen($file_name) == 0 || strlen($file_name) > $MAX_FILENAME_LENGTH) { HandleError("Invalid file name"); exit(0); } // 检测重名文件 if (file_exists($save_path . $file_name)) { HandleError("File with this name already exists"); exit(0); } // 检测后缀名 $path_info = pathinfo($_FILES[$upload_name]['name']); $file_extension = $path_info["extension"]; $is_valid_extension = false; foreach ($extension_whitelist as $extension) { if (strcasecmp($file_extension, $extension) == 0) { $is_valid_extension = true; break; } } if (!$is_valid_extension) { HandleError("Invalid file extension"); exit(0); } // 保存文件 if (!@move_uploaded_file($_FILES[$upload_name]["tmp_name"], $save_path.$file_name)) { HandleError("文件无法保存."); exit(0); } // 成功输出 echo "File Received"; exit(0); function HandleError($message) { header("HTTP/1.1 500 Internal Server Error"); echo $message;}?>以上代码就是实现文件上传之SwFUpload插件的全部内容,希望大家喜欢。您可能感兴趣的文章:使用SWFUpload实现无刷新上传图片PHP swfupload图片上传的实例代码SwfUpload在IE10上不出现上传按钮的解决方法swfupload ajax无刷新上传图片实例代码phpcms模块开发之swfupload的使用介绍SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享为SWFUpload增加ASP版本的上传处理程序swfupload 多文件上传实现代码swfupload使用代码说明文件上传插件SWFUpload的使用指南 上一条: 详解Grunt插件之LiveReload实现页面自动刷新(两种方案) 下一条: discuz图片顺序混乱解决方案 昵称: 邮箱: 0条评论 (评论内容有缓存机制,请悉知!)最新最热 分类目录 人生(杂谈) 技术 linux Java php 框架(架构) 前端 ThinkPHP 数据库 微信(小程序) Laravel Redis Docker Go swoole Windows Python 苹果(mac/ios) 相关文章 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论) Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论) 一个简单整合微信、支付宝、百度、字节跳动支付方式的包推荐(0个评论) 如何在PHP中检测n+1查询问题及场景示例(0个评论) 使用Lawman(Pest PHP插件)为Saloon API集成添加架构测试(0个评论) 近期文章 程序员兼职引起纠纷之如何安全兼职?(0个评论) go + websocket实现即时通信之私聊/群聊功能示例(0个评论) go + websocket实现并发下载文件及中途取消下载功能示例(0个评论) Laravel 11.7版本发布-适用于MySQL的Rule::array()和whereJsonOverlaps()(0个评论) 在go+ gin框架中使用gomail.v2实现邮件通知功能(0个评论) 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论) Energy GUI桌面应用开发之js和go之间交互示例(0个评论) 在go语言中gin + gorm多表关联实现一个店铺商品搜索功能示例(0个评论) 在go语言中gin + gorm实现一个店铺关注/取消关注的功能示例(0个评论) 2024年五一假期安排和今年的重要事件回顾(0个评论) 近期评论 123 在Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分.. 原梓番博客 在在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。.. 博主 在佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章.. 1111 在佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光.. 路人 在php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了.. 文章归档 2016-10 2016-11 2017-06 2017-07 2017-08 2017-09 2017-11 2017-12 2018-01 2018-02 2018-03 2020-03 2020-04 2020-05 2020-06 2020-07 2020-09 2021-02 2021-03 2021-04 2021-05 2021-06 2021-07 2021-08 2021-09 2021-10 2021-11 2021-12 2022-01 2022-02 2022-05 2022-06 2022-07 2022-08 2022-09 2022-10 2022-11 2022-12 2023-01 2023-02 2023-03 2023-04 2023-05 2023-06 2023-07 2023-08 2023-09 2023-10 2023-11 2023-12 2024-01 2024-02 2024-03 2024-04 2024-05 Top
点击“浏览”按钮,选择您要上传的文档文件后,系统将自动上传并在完成后提示您。
请勿上传包含中文文件名的文件!
2.后台文件upload.php
$multiplier*(int)$POST_MAX_SIZE && $POST_MAX_SIZE) { header("HTTP/1.1 500 Internal Server Error"); echo "POST exceeded maximum allowed size."; exit(0); } // 基本设置 $save_path = getcwd() . "/file/"; // 文件上传位置 $upload_name = "Filedata"; $max_file_size_in_bytes = 2147483647; // 2GB $extension_whitelist = array("doc", "txt", "jpg", "gif", "png"); // 允许文件类型 $valid_chars_regex = '.A-Z0-9_ !@#$%^&()+={}\[\]\',~`-'; // 文件名规则 // 其他变量 $MAX_FILENAME_LENGTH = 260; $file_name = ""; $file_extension = ""; $uploadErrors = array( 0=>"文件上传成功", 1=>"上传的文件超过了 php.ini 文件中的 upload_max_filesize directive 里的设置", 2=>"上传的文件超过了 HTML form 文件中的 MAX_FILE_SIZE directive 里的设置", 3=>"上传的文件仅为部分文件", 4=>"没有文件上传", 6=>"缺少临时文件夹" ); // 检测文件是否上传正确 if (!isset($_FILES[$upload_name])) { HandleError("No upload found in \$_FILES for " . $upload_name); exit(0); } else if (isset($_FILES[$upload_name]["error"]) && $_FILES[$upload_name]["error"] != 0) { HandleError($uploadErrors[$_FILES[$upload_name]["error"]]); exit(0); } else if (!isset($_FILES[$upload_name]["tmp_name"]) || !@is_uploaded_file($_FILES[$upload_name]["tmp_name"])) { HandleError("Upload failed is_uploaded_file test."); exit(0); } else if (!isset($_FILES[$upload_name]['name'])) { HandleError("File has no name."); exit(0); } // 检测文件尺寸 $file_size = @filesize($_FILES[$upload_name]["tmp_name"]); if (!$file_size || $file_size > $max_file_size_in_bytes) { HandleError("File exceeds the maximum allowed size"); exit(0); } if ($file_size <= 0) { HandleError("File size outside allowed lower bound"); exit(0); } // 检测文件名字为空 $file_name = preg_replace('/[^'.$valid_chars_regex.']|\.+$/i', "", basename($_FILES[$upload_name]['name'])); if (strlen($file_name) == 0 || strlen($file_name) > $MAX_FILENAME_LENGTH) { HandleError("Invalid file name"); exit(0); } // 检测重名文件 if (file_exists($save_path . $file_name)) { HandleError("File with this name already exists"); exit(0); } // 检测后缀名 $path_info = pathinfo($_FILES[$upload_name]['name']); $file_extension = $path_info["extension"]; $is_valid_extension = false; foreach ($extension_whitelist as $extension) { if (strcasecmp($file_extension, $extension) == 0) { $is_valid_extension = true; break; } } if (!$is_valid_extension) { HandleError("Invalid file extension"); exit(0); } // 保存文件 if (!@move_uploaded_file($_FILES[$upload_name]["tmp_name"], $save_path.$file_name)) { HandleError("文件无法保存."); exit(0); } // 成功输出 echo "File Received"; exit(0); function HandleError($message) { header("HTTP/1.1 500 Internal Server Error"); echo $message;}?>
以上代码就是实现文件上传之SwFUpload插件的全部内容,希望大家喜欢。
昵称:
邮箱:
123 在
原梓番博客 在
博主 在
1111 在
路人 在
Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号