Php move#u uploaded_file()函数不';引用其他页面时无法工作
我在将move_upload_file()函数引用到其他页面时遇到问题。它工作正常,没有任何错误。但问题是所选文件未传输到指定目录 我不知道是什么问题,非常感谢您的帮助或建议 代码如下: 第1页(正在进行输入):Php move#u uploaded_file()函数不';引用其他页面时无法工作,php,Php,我在将move_upload_file()函数引用到其他页面时遇到问题。它工作正常,没有任何错误。但问题是所选文件未传输到指定目录 我不知道是什么问题,非常感谢您的帮助或建议 代码如下: 第1页(正在进行输入): 它将代码带到另一个页面“conf_news.php”,其中我引用了存储文件的部分内容: 第2页: $PicMessage=”“; $PicName=addslashes($_FILES[“file”][“name”]); $PicType=addslashes($_FILES['f
它将代码带到另一个页面“conf_news.php”,其中我引用了存储文件的部分内容:
第2页:
$PicMessage=”“;
$PicName=addslashes($_FILES[“file”][“name”]);
$PicType=addslashes($_FILES['file']['type']);
$PicSize=addslashes($_FILES['file']['size']);
$PicError=addslashes($_FILES[“file”][“error”]);
$PicTempName=addslashes($_FILES[“file”][“tmp_name”]);
$allowedExt=array('jpeg','jpg','gif','png');
$a=分解(“.”,$PicName);
$extension=end($a);未结算(a美元);
如果(($PicType==“图像/gif”)
||($PicType==“图像/png”)
||($PicType==“图像/jpeg”)
||($PicType==“图像/jpg”)
&&($PicSize>100)
&&在数组中($extensions,$allowedExt))){
如果($PicError>0){
$PicMessage=“错误类型:“..$PicError.”
”;
}
否则{
echo“上传:.$PicName.”
;
echo“Type:.$PicType.
”;
回声“大小:”($PicSize/1024)。“Kb
”;
echo“存储在:.$PicTempName中;
如果(文件_存在(“../photos/”$PicName)){
$PicMessage=“文件已存在”;
}
否则{
移动上传的文件($PicTempName,“../photos/”$PicName);
$PicMessage=“存储在:“..”./photos/”$PicName;
}
}
}
否则{
$PicMessage=“无效的文件类型”;
}
图片消息显示文件已传输,但ptohos文件夹为空。我真的想不出哪里出了问题
非常感谢所有愿意花时间帮助我的人。请尝试验证该文件是否已通过POST请求上传,因为正如该功能手册中所述:
move\u uploaded\u file()通过只允许移动通过PHP上传的文件来确保此操作的安全。
您可以使用函数is\u upload\u file()
验证文件是否通过PHP上传。这将告诉您该文件是否能够与move\u upload\u file()
一起使用
将您的else
语句替换为:
else if(is_uploaded_file($PicName)) {
move_uploaded_file($PicTempName, "../photos/". $PicName);
$PicMessage = "Stored in: ". "../photos/". $PicName;
}
好的,我发现问题了
在数组中($extensions,$allowedExt)){将其更改为$extension。这是一个小错误,但足以延迟我们的工作。还要删除add\u slashes()并重试。检查move\u uploaded\u file()返回的内容我应该将其放置在哪里?当然,您应该添加调试语句(例如
echo“is_uploaded_file()此处返回true!”;
或类似内容)来测试代码中实际发生的情况。“我应该将is_uploaded_file()函数放在哪里?”这是一个PHP函数,只需调用它即可。是的,您是正确的is_uploaded_文件(0表示没有要移动的文件。在这种情况下,您建议怎么做?如果(是上传的文件($PicTempName)){move_上传的文件($PicTempName,../photos/“$PicName);$PicMessage=“YES”}否则{$PicMessage=“NO”;也删除添加斜杠()请注意,如果不转义文件名,就会打开潜在的安全漏洞。如果add\u slashes()
给您带来问题,请找到另一种方法来缓解此问题。我认为mysql\u real\u escape\u string()可以。此外,您还必须指定最大上载大小限制。目前您只有最小大小限制($PicSize>100)。添加最大大小限制,如($PicSize)
$PicMessage = "";
$PicName = addslashes( $_FILES["file"]["name"] );
$PicType = addslashes( $_FILES['file']['type'] );
$PicSize = addslashes( $_FILES['file']['size'] );
$PicError = addslashes( $_FILES["file"]["error"] );
$PicTempName = addslashes( $_FILES["file"]["tmp_name"] );
$allowedExt = array('jpeg', 'jpg', 'gif', 'png');
$a = explode(".", $PicName);
$extension = end($a); unset($a);
if((($PicType == "image/gif")
|| ($PicType == "image/png")
|| ($PicType == "image/jpeg")
|| ($PicType == "image/jpg")
&& ($PicSize > 100)
&& in_array($extentions, $allowedExt))){
if($PicError > 0){
$PicMessage = "Error Type: ". $PicError. "<br />";
}
else{
echo "Upload: ". $PicName. "<br />";
echo "Type: ". $PicType. "<br />";
echo "Size: ". ($PicSize / 1024). " Kb<br />";
echo "Stored in: ". $PicTempName;
if(file_exists("../photos/". $PicName)){
$PicMessage = "File Already Exists";
}
else{
move_uploaded_file($PicTempName, "../photos/". $PicName);
$PicMessage = "Stored in: ". "../photos/". $PicName;
}
}
}
else{
$PicMessage = "Invalid File Type";
}
else if(is_uploaded_file($PicName)) {
move_uploaded_file($PicTempName, "../photos/". $PicName);
$PicMessage = "Stored in: ". "../photos/". $PicName;
}