我的代码有问题吗?多次上传PHP文件
这是我写的代码,我希望它能工作,但肯定有什么地方出错了。我自己搞不懂,请帮帮我我的代码有问题吗?多次上传PHP文件,php,file,upload,Php,File,Upload,这是我写的代码,我希望它能工作,但肯定有什么地方出错了。我自己搞不懂,请帮帮我 <?php if(isset($_POST['submit'])){ $max_size = 500000; $image_upload_path = "images/products/"; $allowed_image_extension = array('jpg','jpeg','png','gif'); for($i=0;$i<2;$i++) {
<?php
if(isset($_POST['submit'])){
$max_size = 500000;
$image_upload_path = "images/products/";
$allowed_image_extension = array('jpg','jpeg','png','gif');
for($i=0;$i<2;$i++)
{
//check if there is file
if((!empty($_FILES['image[]'][$i])) && ($_FILES['image[]']['error'][$i]==0))
{
//check extension
$extension = strrchr($_FILES['image']['name'][$i], '.');
if(in_array($extension,$allowed_image_extension))
{
//check file size.
if($_FILES['image']['size'][$i] > $max_size)
{
echo "file too big";
}
else if($_FILES['image']['size'][$i] < 1)
{
echo "file empty";
}
else
{
//we have pass file empty check,file extension check,file size check.
$the_uploaded_image = $_FILES['image']['tmp_name'][$i];
$the_uploaded_image_name = $_FILES['image']['name'][$i];
//replace empty space in filename with an underscore '_'
$the_uploaded_image_name = preg_replace('/\s/','_',$the_uploaded_image_name);
//get the file extension
$the_uploaded_image_extension = explode(',',$the_uploaded_image_name);
$the_new_image_name = $the_uploaded_image_name."".md5(uniqid(rand(),true))."".$the_uploaded_image_extension;
$save_image_as = $the_new_image_name;
//check file exist
if(file_exists($image_upload_path."".$the_new_image_name))
{
echo "file".$image_upload_path."".$the_new_image_name." already exist";
}
else
{
if(move_uploaded_file($the_uploaded_image,$save_image_as))
{
echo "image".$the_uploaded_image_name." uploaded sucessfully";
//set the image path to save in database column
}
else
{
echo "there was an error uploading your image.";
}
}
}
}
else
{
echo "extension not allowed";
}
}
else
{
echo "please choose file to upload";
}
}
}
?>
<html>
<head><title>image upload</title></head>
<body>
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="image[]"/>
<input type="file" name="image[]"/>
<input type="submit" value="submit"/>
</form>
</body>
</html>
图片上传
这是我的新PHP代码。我得到两个结果,因为找不到。有人能告诉我我做错了什么吗。if-else条件似乎不起作用,因为这两个条件都提供输出。为什么?
<?php
if(isset($_POST["submit"])) {
echo $_POST["submit"];
echo "<br/>";
for($i=0;$i<count($_FILES['image'])-1;$i++)
{
if(!empty($_FILES['image']['tmp_name'][$i]))
{
echo "found";
echo "<br/>";
}
else
{
echo "not found";
echo "<br/>";
}
}
}
else
{
echo "form is not posted";
}
我想最明显的WTF应该是$\u文件['image[]]][$I]
,它应该是$\u文件['image'][$I]
(名称中的[]
使其成为一个数组,而不是名称的一部分)
在没有更多信息的情况下,我不愿意为您排除除此之外的任何故障。在代码中的不同点尝试以下操作:
echo '<pre>';
var_dump($_POST); // or other variables
echo '</pre>';
echo';
var_dump($_POST);//或其他变量
回声';
这将有助于您调试自己的代码,这是您必须学会的。请您告诉我们发生了什么/没有发生什么?deceze说了什么。请在您的问题中添加一个问题,并描述什么不起作用。我仍然会出现空白屏幕,没有任何错误,输入文件中的图像也不会上载。@罗杰,然后打开错误报告,让脚本转储$\u文件
。另外@Roger这确实是一个基本调试的案例,这里没有人可以(或将要)这样做为您效劳。首先打开错误报告。然后检查是否设置了$\u POST[“submit”]
-例如,通过生成测试输出echo“submit is set!”代码>。然后测试第13行中的条件是否实际满足,例如,通过进行另一个测试输出。等等等等。这里的每一位知识渊博的人都必须经历这一过程——这是我们大家学习的方式感谢你们指出调试代码的方法。这周我自己刚开始学习PHP。