0

我是 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!"; 
}

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

希望我足够明确。谢谢 !

4

2 回答 2

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"; 
}
于 2013-05-17T03:59:53.807 回答
0

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

于 2013-05-17T04:07:39.127 回答