Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.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数组_Php_Image_Forms_Post_Upload - Fatal编程技术网

如何删除PHP数组

如何删除PHP数组,php,image,forms,post,upload,Php,Image,Forms,Post,Upload,我们正在尝试将一个新的图像上传字段image_cover合并到我们现有的PHP代码中。我们目前有3个HTML字段,前2个是image0、image1数组,我们刚刚添加了image\u cover。我们希望使用这个新字段与我们的image0相同,image1上载时不使用数组,因为在该字段中只上载1个图像。这是我们的代码: $inames = array(); for ($x = 0; $x < 2; $x++) { if (!($_FILES[image . $x]['name']

我们正在尝试将一个新的图像上传字段image_cover合并到我们现有的PHP代码中。我们目前有3个HTML字段,前2个是image0、image1数组,我们刚刚添加了image\u cover。我们希望使用这个新字段与我们的image0相同,image1上载时不使用数组,因为在该字段中只上载1个图像。这是我们的代码:

$inames = array();
for ($x = 0; $x < 2; $x++) {
    if (!($_FILES[image . $x]['name'] == "")) {
        $y = $x + 1;
        if ($_FILES['image$x']['size'] > $site_config['image_max_filesize'])
            show_error_msg(T_("ERROR"), T_("INVAILD_FILE_SIZE_IMAGE"), 1);
        $uploaddir = $site_config["uploads_dir"] . "/images/";
        $ifile = $_FILES[image . $x]['tmp_name'];
        $im = getimagesize($ifile);
        if (!$im[2])
            show_error_msg(T_("ERROR"), sprintf(T_("INVALID_IMAGE"), $y), 1);
        if (!array_key_exists($im['mime'], $allowed_types))
            show_error_msg(T_("ERROR"), T_("INVALID_FILETYPE_IMAGE"), 1);
        $ret = SQL_Query_exec("SHOW TABLE STATUS LIKE 'files'");
        $row = mysql_fetch_array($ret);
        $next_id = $row['Auto_increment'];
        $ifilename = $next_id . $x . $allowed_types[$im['mime']];
        $copy = copy($ifile, $uploaddir . $ifilename);
        if (!$copy)
            show_error_msg(T_("ERROR"), sprintf(T_("IMAGE_UPLOAD_FAILED"), $y), 1);
        $inames[] = $ifilename;
    }
}
HTML字段

<form action="index.php" method="post">
<input type='file' name='image_cover' size='50' />
<input type='file' name='image0' size='50' />
<input type='file' name='image1' size='50' />

我们的列已设置到位,是表中image1、image0列的匹配重命名副本。我们怎样才能做到这一点?非常感谢你,难住了

首先,您可能希望将图像上载过程与查询DB表中的“下一个ID”分离开来。使用关系记录中的标识符重命名文件,如帖子标题或用户名等。为了下面的示例,我只使用当前时间戳

其次,您的查询无法正常工作,因为$icover变量尚未创建

要以最简单的方式演示这一点,您只需从循环中提取图像处理代码,然后为图像封面再次运行它:

$time = time();
$inames = array();
for ($x = 0; $x < 2; $x++) {
    if (!($_FILES[image . $x]['name'] == "")) {
        $y = $x + 1;
        if ($_FILES['image$x']['size'] > $site_config['image_max_filesize'])
            show_error_msg(T_("ERROR"), T_("INVAILD_FILE_SIZE_IMAGE"), 1);
        $uploaddir = $site_config["uploads_dir"] . "/images/";
        $ifile = $_FILES[image . $x]['tmp_name'];
        $im = getimagesize($ifile);
        if (!$im[2])
            show_error_msg(T_("ERROR"), sprintf(T_("INVALID_IMAGE"), $y), 1);
        if (!array_key_exists($im['mime'], $allowed_types))
            show_error_msg(T_("ERROR"), T_("INVALID_FILETYPE_IMAGE"), 1);
        $ifilename = $time . '_' . $x . $allowed_types[$im['mime']];
        $copy = copy($ifile, $uploaddir . $ifilename);
        if (!$copy)
            show_error_msg(T_("ERROR"), sprintf(T_("IMAGE_UPLOAD_FAILED"), $y), 1);
        $inames[] = $ifilename;
    }
}

    if (!($_FILES['image_cover']['name'] == "")) {
        if ($_FILES['image_cover']['size'] > $site_config['image_max_filesize'])
            show_error_msg(T_("ERROR"), T_("INVAILD_FILE_SIZE_IMAGE"), 1);
        $uploaddir = $site_config["uploads_dir"] . "/images/";
        $ifile = $_FILES['image_cover']['tmp_name'];
        $im = getimagesize($ifile);
        if (!$im[2])
            show_error_msg(T_("ERROR"), sprintf(T_("INVALID_IMAGE"), $y), 1);
        if (!array_key_exists($im['mime'], $allowed_types))
            show_error_msg(T_("ERROR"), T_("INVALID_FILETYPE_IMAGE"), 1);

        $ifilename = $time . '_image_cover' . $allowed_types[$im['mime']];
        $copy = copy($ifile, $uploaddir . $ifilename);
        if (!$copy)
            show_error_msg(T_("ERROR"), sprintf(T_("IMAGE_UPLOAD_FAILED"), 1), 1);
        $inames['image_cover'] = $ifilename;
    }
然后在查询中使用$inames['image\u cover']

为了进一步细化,将上面的错误处理提取到它自己的回调中,然后将整个图像处理过程封装到回调中


除了在图像文件名中使用预期的ID之外,还可以实现一个关系表,该表保存这些图像相关记录的主键。然后在图像文件名中使用该主键,而不是我为演示而创建的$time值。

如果需要,请注意这部分代码$_文件[image.$x]['name']={并放入`$\u文件['image\u cover']['size']>$site\u config['image\u max\u filesize']`我仍然无法找到解决方案,我已经尝试了几种组合。还有,'image$x'这不起作用,请更改,您还需要使用此` cover'的案例
$time = time();
$inames = array();
for ($x = 0; $x < 2; $x++) {
    if (!($_FILES[image . $x]['name'] == "")) {
        $y = $x + 1;
        if ($_FILES['image$x']['size'] > $site_config['image_max_filesize'])
            show_error_msg(T_("ERROR"), T_("INVAILD_FILE_SIZE_IMAGE"), 1);
        $uploaddir = $site_config["uploads_dir"] . "/images/";
        $ifile = $_FILES[image . $x]['tmp_name'];
        $im = getimagesize($ifile);
        if (!$im[2])
            show_error_msg(T_("ERROR"), sprintf(T_("INVALID_IMAGE"), $y), 1);
        if (!array_key_exists($im['mime'], $allowed_types))
            show_error_msg(T_("ERROR"), T_("INVALID_FILETYPE_IMAGE"), 1);
        $ifilename = $time . '_' . $x . $allowed_types[$im['mime']];
        $copy = copy($ifile, $uploaddir . $ifilename);
        if (!$copy)
            show_error_msg(T_("ERROR"), sprintf(T_("IMAGE_UPLOAD_FAILED"), $y), 1);
        $inames[] = $ifilename;
    }
}

    if (!($_FILES['image_cover']['name'] == "")) {
        if ($_FILES['image_cover']['size'] > $site_config['image_max_filesize'])
            show_error_msg(T_("ERROR"), T_("INVAILD_FILE_SIZE_IMAGE"), 1);
        $uploaddir = $site_config["uploads_dir"] . "/images/";
        $ifile = $_FILES['image_cover']['tmp_name'];
        $im = getimagesize($ifile);
        if (!$im[2])
            show_error_msg(T_("ERROR"), sprintf(T_("INVALID_IMAGE"), $y), 1);
        if (!array_key_exists($im['mime'], $allowed_types))
            show_error_msg(T_("ERROR"), T_("INVALID_FILETYPE_IMAGE"), 1);

        $ifilename = $time . '_image_cover' . $allowed_types[$im['mime']];
        $copy = copy($ifile, $uploaddir . $ifilename);
        if (!$copy)
            show_error_msg(T_("ERROR"), sprintf(T_("IMAGE_UPLOAD_FAILED"), 1), 1);
        $inames['image_cover'] = $ifilename;
    }