Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
管理部分中的PHP图像上载仅允许客户端上载19个图像_Php_File Upload_For Loop_Image Upload_File Io - Fatal编程技术网

管理部分中的PHP图像上载仅允许客户端上载19个图像

管理部分中的PHP图像上载仅允许客户端上载19个图像,php,file-upload,for-loop,image-upload,file-io,Php,File Upload,For Loop,Image Upload,File Io,我一直在为一个客户的管理面板(一家摄影公司将图像上传到客户的画廊)工作,当我担任web开发人员时,它只允许他上传30张图像,即使有100个文件上传框。只需将for循环的更改为运行100次即可解决此问题。这解决了这个问题 但最近,我的客户连代码都不碰,只能上传19张图片。。我没有改变这个表格,他之前上传了40多张图片,所以我不太明白会发生什么。。我已经一遍又一遍地检查了代码,似乎不能很好地指出问题所在。这可能是服务器端,因为我最近从他的老开发人员的主机转移到了我的hostgator帐户。也许是ht

我一直在为一个客户的管理面板(一家摄影公司将图像上传到客户的画廊)工作,当我担任web开发人员时,它只允许他上传30张图像,即使有100个文件上传框。只需将for循环的更改为运行100次即可解决此问题。这解决了这个问题

但最近,我的客户连代码都不碰,只能上传19张图片。。我没有改变这个表格,他之前上传了40多张图片,所以我不太明白会发生什么。。我已经一遍又一遍地检查了代码,似乎不能很好地指出问题所在。这可能是服务器端,因为我最近从他的老开发人员的主机转移到了我的hostgator帐户。也许是htaccess里的什么东西?我之所以添加这一点,是因为图像标签的更新,而不是图像本身(我也找不到上传的图像,在它发布后,但我的浏览器显示它正在上传)

以下是编辑库代码本身,如果它对问题有任何帮助:

<?php
require_once("../conn.php");
require_once("access.php");
require_once("GalleryNavigation.php");
require_once("dThumbMaker.inc.php");

/////////////common varilable
$__table = "devbg_gallery";
$__page = $_SERVER['PHP_SELF'];
$__page2 = "AddGallery.php";
$__id = "ItemID";
$__pagetitle = "GALLERY";
$__uploadfolder = "../myimages/";
$__thumbuploadfolder = "../myimages/thumbs/";
$__imageprefix = "Gallery";
$Thumb_Imgwidth = 200;
$Thumb_Imgheight = 77;
/////////////
if(isset($_POST[ds]))
{
    if(count($_POST['DelItem']) > '0')
    {
        while(list(, $value) = each($_POST['DelItem']))
        {
            $DelInfo = $value;
            $r2 = mysql_query("select * from ".$__table." where ".$__id." = '$DelInfo' ") or die(mysql_error());
            $a2 = mysql_fetch_array($r2);

            for($i=1;$i<=100;$i++)
            {
                if(file_exists($__uploadfolder.$a2['ItemImage'.$i]))
                {
                    unlink($__uploadfolder.$a2['ItemImage'.$i]);
                    unlink($__thumbuploadfolder.$a2['ItemImage'.$i]);
                }   
            }

            //delete the product
            mysql_query("delete from ".$__table." where ".$__id." = '".$DelInfo."' ") or die(mysql_error());
        }
    }
}

if(isset($_POST[s100]))
{
    $MyProductName = mysql_escape_string(trim(stripslashes(strip_tags($_POST[ProductName]))));
    $Description = mysql_escape_string(trim(strip_tags(stripslashes($_POST['Description']))));
    $Link = trim(strip_tags(stripslashes($_POST['Link'])));
    $TopLabel = cleaninput($_POST['TopLabel'],"mres|he|tr");
    $status = $_POST['status'];
    $NewTopLabelName = $TopLabel;

    if(!empty($_FILES['TopImage']['name']))
    {
        $NewTopImageName = $__imageprefix.$t.$_FILES['TopImage']['name'];
        if(is_uploaded_file($_FILES['TopImage']['tmp_name'])) 
        {
            move_uploaded_file($_FILES['TopImage']['tmp_name'], $__uploadfolder.$NewTopImageName);
            $NewTopImageName = $NewTopImageName;
            $NewTopLabelName = $TopLabel;
            //lets make the thumb
            $tm = new dThumbMaker;
            $load = $tm->loadFile($__uploadfolder.$NewTopImageName);
            if($load === true)
            { // Note three '='
                $tm->cropCenter($Thumb_Imgwidth, $Thumb_Imgheight);
                $tm->build($__thumbuploadfolder.$NewTopImageName);
            }
            else
            {
                // Error returned.
                $error .= "Could not open the file '".$NewTopImageName."'.\n";
                $error .= "The error returned was: ";
                $error .= $load;
            }
        }
    }
    else
    {
        $NewTopImageName = $_POST['OldTopImage'];
        $NewTopLabelName = $NewTopLabelName;
    }

    for($i=1;$i<=100;$i++) //This is where I believe the problem is --------------------------------------------------------------------
    {   
        ${'NewsItemLabel'.$i} = cleaninput($_POST['ItemLabel'.$i],"mres|he|tr");
        $ItemLabels .= "ItemLabel".$i ." = '". cleaninput($_POST['ItemLabel'.$i],"mres|he|tr") ."',";
        if(!empty($_FILES['ItemImage'.$i]['name']))
        {
            ${'NewImageName'.$i} = $__imageprefix.$t.$_FILES['ItemImage'.$i]['name'];
            if(is_uploaded_file($_FILES['ItemImage'.$i]['tmp_name'])) 
            {
                move_uploaded_file($_FILES['ItemImage'.$i]['tmp_name'], $__uploadfolder.${'NewImageName'.$i});
                //lets make the thumb
                $tm = new dThumbMaker;
                $load = $tm->loadFile($__uploadfolder.${'NewImageName'.$i});
                if($load === true)
                { // Note three '='
                    $tm->cropCenter($Thumb_Imgwidth, $Thumb_Imgheight);
                    $tm->build($__thumbuploadfolder.${'NewImageName'.$i});
                    $ItemImages .= "ItemImage".$i ." = '". ${'NewImageName'.$i} ."',";
                }
                else
                {
                    // Error returned.
                    $error .= "Could not open the file '".${'NewImageName'.$i}."'.\n";
                    $error .= "The error returned was: ";
                    $error .= $load;
                }
            } else {  }
        }
        else
        {
            ${'NewImageName'.$i} = $_POST['OldItemImage'.$i];
        }
    }

    if(empty($error))
    {
        //update the database
        $q1 = "update ".$__table." set 
                        ItemName = '".$MyProductName."',
                        Description = '".$Description."',
                        Link = '".$Link."',
                        TopImage = '$NewTopImageName',
                        Toplabel = '$NewTopLabelName',
                        ".$ItemImages.$ItemLabels."
                        status = '".$status."'

                        where ".$__id." = '".$_POST[$__id]."' ";

        mysql_query($q1) or die(mysql_error());
        echo "<br><br><center>Gallery Updated</center>";
    }
}
if(!empty($_GET[$__id]))
{
   $_POST[$__id] = $_GET[$__id];
}
if(!empty($_POST[$__id]))
{
    //get the product info
    $r1 = mysql_query("select * from devbg_gallery where ".$__id." = '".$_POST[$__id]."' ") or die(mysql_error());
    $a1 = mysql_fetch_array($r1);

    echo $error;
?>
<form method=post action=EditGallery.php enctype="multipart/form-data">
<table align=center width=740>
<caption align=center><b>Gallery Name:</b></caption>
<tr>
    <td align='right'>Event Name:</td>
    <td><input type=text class=input name="ProductName" value="<?php echo $a1['ItemName'];?>"></td>
</tr>
<TR>
    <td align='right'>Description:</td>
    <td><textarea name="Description"cols=60 rows=10><?php echo $a1['Description'];?></textarea></td>
</TR>
<?php
if(!empty($a1['TopImage']))
{
    $v = $a1['TopImage'];
     echo "<tr>";
       echo "<td></td><td><img src='".$__uploadfolder.$v."' width='72' border='0'><br><a href='DeleteImage.php?".$__id."=".$a1[$__id]."&Type=gallery&file=".$v."&img=top'>Delete Image</a></td>";
     echo "</tr>";
}
?>
<tr>
    <td align='right'>Top Image:</td>
    <td><input type=file name=TopImage></td>
</tr>
<tr>
    <td align='right'>Top Image Label:</td>
    <td><input type=text name=TopLabel value="<?php echo $a1['TopLabel'];?>"></td>
</tr>
<?php
            for($i = 1; $i <= 100; $i++)
            {
                if($a1['ItemImage'.$i] != "")
                {
                     echo "<tr>";
                     echo "<td></td><td><img src='".$__uploadfolder.$a1['ItemImage'.$i]."' width='72' border='0'><br><a href='DeleteImage.php?".$__id."=".$a1[$__id]."&Type=gallery&file=".$a1['ItemImage'.$i]."&id=".$i."'>Delete Image</a></td>";
                     echo "</tr>";
                }

                echo "<TR><TD align='right'>Image $i: </TD><TD><input type=file name='ItemImage$i'></TD></TR>\n\t";
                echo "<TR><TD align='right'>Label $i: </td><TD><input type=text name='ItemLabel".$i."' value='".cleaninput($a1['ItemLabel'.$i],"ss|hd|tr")."' size='79'></TD></TR>\n\t";
                echo "<input type='hidden' name='OldImage$i' value='".$a1['ItemImage'.$i]."'>";
                echo "<input type='hidden' name='OldLabel$i' value='".cleaninput($a1['ItemLabel'.$i],"ss|hd|tr")."'>";
            }
?>
<tr>
    <td></td>
    <td>
        <input type="hidden" name="OldTopImage" value="<?php echo $a1['TopImage'];?>">
        <input type="hidden" name="OldTopLabel" value="<?php echo $a1['TopLabel'];?>">
        <input type="hidden" name=<?php echo $__id;?> value="<?php echo $_POST[$__id];?>">
        <input type="submit" name="s100" value="Edit Gallery">
    </td>
</tr>
</form>
<?php
    exit();
}
if(!empty($_GET[Start]))
{
    $Start = $_GET[Start];
}
else
{
    $Start = '0';
}

$ByPage = "10";

//get the products list
$r1 = mysql_query("select * from devbg_gallery order by ordering_id ASC limit $Start,$ByPage") or die(mysql_error());
if(mysql_num_rows($r1) == '0')
{
    echo "<center>You have no items at the database!</center>";
    exit();
}
?>
<form method=post>
<table align=center width=500 cellspacing="0" cellpadding="3">
<tr style="background-color:#b5c3ce; color:white; font-family:verdana; font-size:11; font-weight:bold">
    <td>Title</td>
    <td>User</td>
    <td align='center'>Edit</td>
    <td align='center'>Delete</td>
</tr>
<?php
$col = "white";
$i=0;
while($a1 = mysql_fetch_array($r1))
{
    $r2 = mysql_query("select * from tbl_register where GID = '".$a1['ItemID']."'") or die(mysql_error());
    $a2 = mysql_fetch_array($r2);
    $name = $a2['firstname'] . " " . $a2['lastname'];

    $i++;
    if($col == "white" )
    {
        $col = "#f3f6f8";
    }
    else
    {
        $col = "white";
    }

    echo "<tr bgcolor=$col>
          <td>".$a1['ItemName']."</td>
          <td>".$name."</td>";
    echo "<td align=center><input type=radio name='".$__id."' value='".$a1[$__id]."'></td>
          <td align='center'><input type='checkbox' name='DelItem[]' value='".$a1[$__id]."'></td>
          </tr>\n\n";

}
    echo "<tr>
            <td colspan=4 align=right><br>\n\t<input class=input type=submit name=ds value='Edit Selected'>  <input type='submit' class='input' name='ds' value='Delete Selected'></td>
          </tr>
</table>
</form>\n\n";

//build the "next" - "prev" navigatioin
$qnav = "select * from ".$__table." order by ItemName ";
$rnav = mysql_query($qnav) or die(mysql_error());
$rows = mysql_num_rows($rnav);
        echo  "<br><table align=center width=600>";
        echo "<td align=center><font face=verdana size=2> | ";
        $pages = ceil($rows/$ByPage);

        for($i = 0; $i <= ($pages); $i++)
        {
            $PageStart = $ByPage*$i;
            $i2 = $i + 1;
            if($PageStart == $Start)
            {
                $links[] = " <span class=bodybold>$i2</span>\n\t ";
            }
            elseif($PageStart < $rows)
            {
                $links[] = " <a class=bodybold href=EditGallery.php?Start=$PageStart>$i2</a>\n\t "; 
            }
        }
        $links2 = implode(" | ", $links);
        echo $links2;
        echo  "| </td>";
        echo "</table><br>\n";
?>
<?php include("footer.php");?>

我的一个朋友发现,当我移动主机时,我的php.ini中的max_file_uploads设置被设置为20,你看到的代码会循环每个图像并尝试上传它,即使没有图像,这就解释了为什么即使我只尝试自己上传1个图像,它也不会在19后上传任何图像。只是一个简单的设置


在我的ini中将此更改为max\u file\u uploads=100,现在一切正常,客户满意

运行phpinfo()并检查内存限制。尝试使用.htacces文件将其设置为128M。从40多个图像减少到19个图像肯定是由于移动到另一台服务器造成的。但是你的客户端上传的文件大小是多少?拥有大量大型图像可能会导致上传速度非常慢,并导致超时或因服务器限制而停止。你有什么错误吗?您应该在PHP配置中查看upload\u max\u filesize、post\u max\u size和max\u input\u time。您可以在php.ini、in.htaccess甚至脚本本身中设置这些参数,但这取决于您的主机。我确信这与图像大小或超时无关,因为我尝试上载非常小的图像,并且在一批19个图像之后再上载一个,以便我知道这只是一个图像上载。这让我困惑,让我想,这真的是服务器问题吗?在一个以前上传了30多张图片的画廊里,我删除了26张图片,并试图用另一张图片重新上传,但没有成功。我对图17也做了同样的处理,但效果不错。所以我不知道。。。有人能看到我丢失的东西吗?请发布您收到的错误消息。内存限制设置为256M:/