0

首先:对不起我的英语,我会尽力解释我想要的,但如果我不能做得很好,我很抱歉。

我正在尝试创建一个网页以允许用户将图像上传到服务器,该页面具有 url 上传和文件上传,并带有单选按钮来选择上传方法。

我的问题是我不知道如何在选择 url 单选时禁用文件上传,例如:

url 上传:网页读取 url 并使用该图像。文件上传:网页读取文件并使用该图像。

这就是我想要的,但问题是当两者都被选中时:页面上传文件并读取 url,但前提是选择了 url 单选。如果选择了文件单选,则忽略 url。

我知道问题在于,当您按下提交按钮时,文件已上传,然后 php 服务器检查选定的单选按钮以及必须执行的操作。

如果选择了 url radio,是否有任何模式可以避免文件上传?,这是页面的脚本:

    <?php
    if ($_POST) {

        if ($_POST["filesource"] === "file"){
            $fileread = $_FILES["file"]["tmp_name"];
        }else{
            $fileread = $_POST["url"];
        }

        if ($fileread){
                include('includes/imgresize.php');
                $image = new SimpleImage();
                $image->load($fileread);
                $image->resize(250,400);
                $image->save('picture.jpg');
                echo "La imagen subida es: <br>";
                echo "<img src='picture.jpg'>";
                echo die;
        }else{
            echo "No se ha seleccionado ningún archivo.";
            echo die;
        }
    }
?>
<script>
    function setrad(radbut){
        document.getElementById(radbut).checked = true;
    }
</script>

<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
    <table>
        <tr><td><input type="radio" name="filesource" value="url" id="urlrad" checked>URL:</td><td><input type="text" size="64" name="url" onClick="setrad('urlrad');"></td></tr>
        <tr><td><input type="radio" name="filesource" value="file" id="filerad">File:</td><td><input type="file" size="50" name="file" id="file" onClick="setrad('filerad');"/></td></tr>
    </table>


    <input name="Submit" type="submit" id="submit" value="Submit" />
</form>

提前致谢 :)

4

1 回答 1

1

我建议您使用 javascript 进行客户端检查:只要切换单选按钮,您就可以简单地清除正确的输入。

function setrad(radbut, input){
    document.getElementById(radbut).checked = true;
    document.getElementById(input).value = "";
}

这样你就可以调用你的setrad函数onClick="setrad('urlrad','file');"(注意输入和收音机都应该有一个id)。

于 2013-03-30T11:23:30.520 回答