0

我有一个表单,您必须通过添加链接或上传图像来添加图像。当您加载页面时,有一个 url 的输入文本,并且我编写了一个按钮,用于将输入文本的 HTML 更改为输入文件之一。

效果很好,但是提交表单时出现问题,该动态上传输入的 $_FILE 数组不存在。

这是交换输入的javascript代码:

function SwapImageMode()
{
    if(imageMode == 0)
    {
        imageMode = 1;
        $("#f_imagearea").html("<input type='file' name='addon_imgupld' id='f_upimgimput' name='addon_imgupld' style='margin-bottom:7px;' accept='image/*' onchange='inputFileChange();'/>");
    }
    else if(imageMode == 1)
    {
        imageMode = 0;
        $("#f_imagearea").html("<input type='text' name='addon_imgurl' class='styled_imput f_imgimput' onFocus=imgUrlImputFocus(); onBlur=imgUrlImputBlur(); />");  
    }
}

表单提交时的php代码:

if(isset($_POST["addon_imgurl"]) && !isset($_POST["addon_imgupld"]))
{
    $formImgMethod = 1; // link
}
else if(isset($_POST["addon_imgupld"]) && !isset($_POST["addon_imgurl"]))
{
    $formImgMethod = 2; // upload
}

if($formImgMethod == 2)
{
    echo($_FILES["addon_imgupld"]["name"]);
}

这是php的错误:

Notice: Undefined index: addon_imgupld in
C:\xampp\htdocs\addexp\agregar\index.php on line 49
4

1 回答 1

1

该错误非常简单。您正在尝试访问一个不存在的数组键,因此您需要检查不同类型的表单提交。

只需在 PHP 表单处理程序中编写一个简单的条件:

if( !empty($_FILES["addon_imgupld"]) ){
  //file input
} elseif( !empty($_REQUEST["addon_imgurl"]) ) {
  //text input
} else {
  //error?
}

您将希望将 $_REQUEST 与发出的任何类型的请求交换($_POST,我假设...)。

更新::

这个条件是错误的:

else if(isset($_POST["addon_imgupld"]) && !isset($_POST["addon_imgurl"]))

应该:

else if(isset($_FILES["addon_imgupld"]) && !isset($_POST["addon_imgurl"]))

更新 2::

您是否将表单编码类型设置为多部分?如果没有,请将此属性添加到您的表单标签中:

enctype="multipart/form-data"
于 2012-10-22T23:55:10.550 回答