Php 多文件上传问题
我有一个简单的代码来上传多个图像,将图像上传到一个文件夹并保存到数据库的路径。问题是我有3个浏览按钮。当所有三个浏览按钮都选择了图像时,脚本仅上载文件并保存到数据库的路径。但当我只选择1个图像上传脚本不工作。怎么了 这是我目前的剧本Php 多文件上传问题,php,mysql,sql,html,Php,Mysql,Sql,Html,我有一个简单的代码来上传多个图像,将图像上传到一个文件夹并保存到数据库的路径。问题是我有3个浏览按钮。当所有三个浏览按钮都选择了图像时,脚本仅上载文件并保存到数据库的路径。但当我只选择1个图像上传脚本不工作。怎么了 这是我目前的剧本 <?php include'includes/db.php'; if(isset($_POST['submit'])){ $extension = substr($_FILES['photo1']['name'], strrpos($_F
<?php
include'includes/db.php';
if(isset($_POST['submit'])){
$extension = substr($_FILES['photo1']['name'],
strrpos($_FILES['photo1']['name'], '.'));
$extension = substr($_FILES['photo2']['name'],
strrpos($_FILES['photo2']['name'], '.'));
$extension = substr($_FILES['photo3']['name'],
strrpos($_FILES['photo3']['name'], '.'));
$extension = strtolower($extension);
echo $extension;
if( $extension == ".jpg" || $extension == ".jpeg" || $extension == ".gif" || $extension == ".png" )
{
$img1=$_FILES['photo1']['name'];
$img2=$_FILES['photo2']['name'];
$img3=$_FILES['photo3']['name'];
$size=$_FILES['photo']['size'];
$type=$_FILES['photo']['type'];
$temp1=$_FILES['photo1']['tmp_name'];
$temp2=$_FILES['photo2']['tmp_name'];
$temp3=$_FILES['photo3']['tmp_name'];
$limit_size = 1024000;
$size_in_kb = 1024;
$max_size = $limit_size/$size_in_kb;
if($size > $limit_size)
{
echo "<script>location.replace('test.php?err=File size exceeds $max_size KB')</script>";
}
else
{
move_uploaded_file($temp1,"images/".$img1);
move_uploaded_file($temp2,"images/".$img2);
move_uploaded_file($temp3,"images/".$img3);
$sql2="INSERT INTO ad_images(image1, image2, image3)VALUES('$img1', '$img2', '$img3')";
$res2=mysql_query($sql2);
if($res2){
echo "<script>location.replace('test.php?success=Product added successfuly')</script>";
}else{
echo "<script>location.replace('test.php?vlx=Error. Try Again...')</script>";
}
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Script Testing</title>
</head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<p> Upload Image<br />
<input type="file" name="photo1" id="photo"><br />
<input type="file" name="photo2" id="photo"><br />
<input type="file" name="photo3" id="photo"><br />
<input type="submit" name="submit" id="submit" value="Add Product" style="margin-top: 25px; margin-left: 335px;"/>
</p>
</body>
</html>
脚本测试
您可以使用多个属性上传多个文件,只需点击一个浏览按钮即可
<input type="file" name="img" multiple>
您可以使用ctrl键选择多个图像,因为您使用相同的变量$extension,如果第三个浏览字段未被选择,则在提交后,该字段将为空,并且不会进入“如果上载”条件。如果您只从第三个浏览按钮浏览,那么将上载单个文件。我对PHP一无所知。但是,在移动文件和更新数据库之前,如果文件包含数据,则应先检查uplaod框,如果包含数据,则应相应地执行操作。感谢您的关注,但如果您不了解PHP,则可能不适合您。再次感谢。我告诉你的不是语法。但是,如果处理空的上传框,那么它必然会抛出类似以下行的错误:$extension=substr($\u FILES['photo1']['name'],strrpos($\u FILES['photo1']['name'],')代码>如果上载框为空,则子字符串
函数将引发异常。然后再说一遍,我应该知道什么。:“仅选择1个图像以上载脚本不起作用”您正试图使用此代码仅上载单个文件move_uploaded_file($temp1,“images/”)$img1);移动上传的文件($temp2,“images/”)$img2);移动上传的文件($temp3,“images/”)$img3)代码>我想这会影响你的代码。所以这就是隐藏的人才。。。你知道PHP吗我想使用3个不同的浏览按钮。我不想使用1浏览按钮上载多个图像请让我尝试使用extension1、extension2和extension3
<input type="file" name="img" multiple>