回应从脚本到html的东西

时间:2013-05-17 03:55:38

标签: php html

我是php中的菜鸟,我需要一些帮助。 我有一个上传脚本,可以将内容上传到我的服务器。 所以在我上传文件后,我收到一条消息your file was upload,我希望这条消息发布在我的html上传页面(主页)中,代码是这样的:

     if(empty($errors)===true){
            move_uploaded_file($file_tmp,"upload/".$file_name);
            echo "Your file was upload!"; <- I want this line to be printed in other page //
        }else{
            print_r($errors);
        }
} 

修改: 如果你能帮我解决这个问题,我发现我的脚本有错误:

$file_name=$_FILES['file']['name'];
$file_tmp =$_FILES['file']['tmp_name'];
$file_type=$_FILES['file']['type'];   
$file_ext=strtolower(end(explode('.',$_FILES['file']['name'])));

$extensions = array("rar","zip","jpeg","jpg","png","gif");
if(in_array($file_ext,$extensions)=== false){
$error[]= "Extension not allowed, please choose a RAR or ZIP file or if you upload an image use JPEG, JPG, PNG or GIF format.</br> Thank you!"; 
}

这是我的限制文件上传的代码,但它不会受到限制,可以告诉我为什么请这样做吗?

希望我足够明确。 谢谢!

2 个答案:

答案 0 :(得分:1)

您可以通过以下方式修改脚本。

... if(empty($errors)===true){
            move_uploaded_file($file_tmp,"upload/".$file_name);
            header("Location: otherpage.php?msg=success");            
        }else{

            header("Location: otherpage.php?msg=failure");  
            print_r($errors);
        }
} ...

在otherpage.php中,

if(isset($_GET['msg']) && $_GET['msg'] == 'success') {

        echo "File uploaded sucessfully";

     }

编辑:

你写过print_r($ errors)。我假设$ errors是一个数组。在这种情况下,您可以使用json_encode($ errors)将此变量传递给url,请参阅下文。

$err = json_encode($errors);
$urlEncode = urlencode($err);
//now pass this to the url like this
header("Location: otherpage.php?msg=failure&err=".$urlEncode);  

//in otherpage.php, you have to decode it.
if(isset($_GET['err'])) {

    $errDecode = urldecode($_GET['err']);
    $err = json_decode($errDecode);
    print_r($err); //prints the error
}

扩展:

您的脚本似乎是正确的,您可以通过以下方式尝试吗。

$extensions = array("rar","zip","jpeg","jpg","png","gif");
  if(!in_array($file_ext,$extensions)){
  $error[]= "your error statement"; 
}

答案 1 :(得分:0)

将回声放在您想要显示的页面上,而不是放在单独的页面上。或者将回显字符串作为表单提交的一部分发送,但这可能不适合这种情况。但是,您可以设置下一页应该打印的内容,但请提前设置。