2009-12-30 4 views
0

J'ai un script php qui si l'utilisateur a le privilège de télécharger et d'image l'image est envoyée à webbrowser mais si l'utilisateur n'a pas les privilèges et xml avec l'info est affichée.Comment analyser webresponse et reconnaître si c'est une image ou si un xml?

phpcode:

if($this->can_download($user->id)){ 

$id = int_escape($_GET['id']); 
$image = Image::by_id($id); 

if(!is_null($image)) { 
    $page->set_mode("data"); 

    $page->set_type($image->get_mime_type()); 
    $file = $image->get_image_filename(); 

    $page->set_data(file_get_contents($file)); 

    //WE UPDATE THAT THE USER HAS DOWNLOADED A FILE. 
    $this->update_database($user->id, "download"); 
} else { 
    $xml = "<status>\n"; 
    $xml .= "<info code=\"145\" message=\"Image does not exists.\"/>\n"; 
    $xml .= "</status>"; 

    $page->set_type("application/xml"); 
    $page->set_data($xml); 
} 
}else { 
    $xml = "<status>\n"; 
    $xml .= "<info code=\"145\" message=\"Yor has reached your daily limit.\"/>\n"; 
    $xml .= "</status>"; 

    $page->set_type("application/xml"); 
    $page->set_data($xml); 
} 

Comment puis-je identifier le type de réponse avec vb.net pour enregistrer l'image si elle est ou envoyer le xml à un analyseur pour l'utiliser?

Ce mon code vb:

Dim PerformedUserUrl As String = UserUrl & "?username=" & username & _ 
              "&password=" & password 

Dim WebRequest As HttpWebRequest = HttpWebRequest.Create(PerformedUserUrl) 

WebRequest.Method = "GET" 

Dim webResponse As HttpWebResponse = Nothing 
Dim stReader As StreamReader = Nothing 

Dim response as string 

Try 
    webResponse = WebRequest.GetResponse() 
    stReader = New StreamReader(webResponse.GetResponseStream()) 

    response stReader.ReadToEnd() 

Catch ex As Exception 
    MsgBox(ex.Message) 
End Try 

Return response 

Répondre

1

Que diriez-vous de vérifier ContentType propriété?

S'il renvoie "application/xml", il peut s'agir de XML. Image, sinon (en fonction du code côté serveur que vous avez donné)

Questions connexes