PHP将$_FILES和$_POST作为参数传递给函数
发布时间:2020-12-13 17:19:28 所属栏目:PHP教程 来源:网络整理
导读:我在网上搜索了使用ajax进行 PHP图片上传的代码.我发现下面附有代码.问题是我改变了一些事情(小调整)以使其在我的服务器上运行.最初它只是一个处理从表单发布的数据的php页面(不是类或函数).我把它变成了课堂然后功能.我现在正在关注OOP.我认为在从过程到OOP
我在网上搜索了使用ajax进行
PHP图片上传的代码.我发现下面附有代码.问题是我改变了一些事情(小调整)以使其在我的服务器上运行.最初它只是一个处理从表单发布的数据的php页面(不是类或函数).我把它变成了课堂然后功能.我现在正在关注OOP.我认为在从过程到OOP的转换中执行操作的最佳方法是将$_FILES和$_POST传递给方法并在内部处理它们.我认为这不起作用.看一下这个例子,请告知如何继续前进.
function uploadImageChosen($_FILES,$_POST){ $path = "../uploads/images/"; $valid_formats = array("jpg","png","gif","bmp"); $connectionInstance = new ConnectionClass(); $connectionInstance->connectToDatabase(); $imgName; $imgURL; $imgSize; $imgDir = $_POST['directory']; if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") { $name = $_FILES['photoimg']['name']; $imgSize = $_FILES['photoimg']['size']; if(strlen($name)) { list($txt,$ext) = explode(".",$name); if(in_array($ext,$valid_formats)) { if($size<(1024*1024)) { $imgName = time().substr(str_replace(" ","_",$txt),5).".".$ext; $tmp = $_FILES['photoimg']['tmp_name']; if(move_uploaded_file($tmp,$path.$imgName)) { $imgURL = $path.$imgName; $connectionInstance->query("INSERT INTO imagesupload(id,title,url,size,directory) VALUES (null,'$imgName','$imgURL','$imgSize','$imgDir')"); //echo "<img src='uploads/".$imgName."' class='preview'>"; } else{ echo "failed"; } }else{ echo "Image file size max 1 MB"; } }else{ echo "Invalid file format.."; } }else{ echo "Please select image..!"; } }//end of if }//end of function 至于调用类函数的页面,这里是: <?php require_once("../classes/UploadImages.php"); $uploadInstance = new UploadImages(); $uploadInstance->uploadImageChosen($_FILES,$_POST); //header("LOCATION:portfolio.php"); ?> 非常感谢你 :) 解决方法
$_POST和$_FILES是超全局数组,它们始终可用,并且在函数或方法中重新定义它们是一个坏主意.
你可以这样做: $uploadInstance->uploadImageChosen(); .. function uploadImageChosen(){ $path = "../uploads/images/"; $valid_formats = array("jpg","bmp"); ... $name = $_FILES['photoimg']['name']; ... 或者如果您需要本地范围内的副本,请执行以下操作: $uploadInstance->uploadImageChosen($_FILES,$_POST); .. function uploadImageChosen($files,$post){ $path = "../uploads/images/"; $valid_formats = array("jpg","bmp"); ... $name = $files['photoimg']['name']; ... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |