如果选中无线电,请避免使用$ _FILES帖子

时间:2013-03-30 11:09:59

标签: php

首先:对不起我的英语,我会试着解释一下我想要的但是如果我做不好的话我很抱歉。

我正在尝试创建一个网页,允许用户将图片上传到服务器,页面上传网址,文件上传,用单选按钮选择上传方式。

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

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

这就是我想要的,但问题是当两者都被选中时:页面上传文件并读取URL,但仅当选择了url radio时。如果选择了文件广播,则忽略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>

提前致谢:)

1 个答案:

答案 0 :(得分:1)

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

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

通过这种方式,您可以将setrad功能称为onClick="setrad('urlrad','file');"(请注意,输入和无线电都应具有ID)。