2011-01-09 25 views
0

如何在if($ allowed)与move_uploaded_file结果相同的位置显示die()消息?显示模('message')问题

<?php 
    $destination_path = $_SERVER['DOCUMENT_ROOT'].'/uploads/'; 

    $allowed[] = 'image/gif'; 
    $allowed[] = 'image/jpeg'; 
    $allowed[] = 'image/pjpeg'; 
    $allowed[] = 'image/png'; 

    if (!in_array($_FILES['myfile']['type'], $allowed)) { 
    die('Wrong file type!'); 
    } 

    $result = 0; 

    $now = time(); 

    $ext = end(explode(".", $_FILES['myfile']["name"])); 

    $filename = ($_FILES['myfile'][0].$now.".".$ext); 

    if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $destination_path .$filename)) { 
    $result = 1; 
    } 

    sleep(1); 
?> 

<script language="javascript" type="text/javascript"> window.top.window.stopUpload('<? php echo $result; ?>', '<?php echo $filename; ?>');</script> 

Javascript来显示move_uploaded_file结果:

function stopUpload(success,filename){ 
    var result = ''; 
    if (success == 1){ 
    result = '<span class="msg">Great!<\/span><br/><br/>'; 
    } 
    else { 
    result = '<span class="emsg">Not so great.<\/span><br/><br/>'; 
    } 
+0

不是你的问题,但这不工作`$ ext = end(explode(“。”,$ _FILES ['myfile'] [“name”])); `将其分成两行或使用pathinfo – 2011-01-09 21:45:41

+0

不起作用?为了什么?上传的文件被命名为“timestamp.ext”,例如1294601292.jpg – KilgoreTrout 2011-01-09 21:57:48

回答

0

你的意思是在相同的条件?

if (in_array($_FILES['myfile']['type'], $allowed) && @move_uploaded_file($_FILES['myfile']['tmp_name'], $destination_path .$filename)) { 
    $result = 1; 
} else { 
    die("Error while uploding file"); 
} 
0

添加三分之一$result条件(-1,例如),则代替die(message);,做$result = -1; exit(0);。更改JavaScript所以else if (success == -1) { result = 'Wrong file type!' }