php and asp problem in uploading

Posted by moustafa on Stack Overflow See other posts from Stack Overflow or by moustafa
Published on 2010-05-27T04:44:28Z Indexed on 2010/05/27 4:51 UTC
Read the original article Hit count: 280

Filed under:

i have an ASP web services to change byte array that given from the client and change it to a file and save it in the web server the code is like this :

[WebMethod]
        public string UploadFile(byte[] f, string fileName)
        {
            try
            {
                MemoryStream ms = new MemoryStream(f);

            String path="/myfile/";
            String location=HttpContext.Current.Server.MapPath(path);
             FileStream fs = new FileStream(HttpContext.Current.Server.MapPath(path)+fileName, FileMode.Create);

                ms.WriteTo(fs);

                ms.Close();
                fs.Close();            
                return "OK";
            }
            catch (Exception ex)
            {             
                return ex.Message.ToString();
            }
        }

the web services need byte array and file name.. i build the client in php upload.php the code is

<html>
<body>
<form action="action1.php" method="post" enctype="multipart/form-data">
 Pilih File Anda:
<input type="file" name="myfile" />
<input type="submit" value="Upload" />
</form>
</body>
<html>

and action1.php the code is:

<?php
require_once('nusoap.php');
$client = new nusoap_client('http://192.168.254.160/testuploadah/FileUploader.asmx?WSDL', 'wsdl','','', '', '');
$err = $client->getError();
if ($err) {
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
}
if(is_uploaded_file($_FILES['myfile']['tmp_name'])){
    $uploadFile = $_FILES['myfile'];
////how can read byte array of $uploadFile so i can send to web services???
////are php only can  send array or string ?
$params[]->f=???????????????
$params[]->fileName=$_FILES['myfile']['name'];

$result = $client->call('UploadFile', $params,'', '', false, true);
if ($client->fault) {
echo '<h2>Fault</h2><pre>';
print_r($result);
echo '</pre>';
} else {
 //Check for errors
$err = $client->getError();
if ($err) {
//// Display the error
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
//// Display the result
echo '<h2>Result</h2><pre>';
print_r($result);
echo '</pre>';
}
}
}
?>

how can i Send the byte array parameter to the web services,so the web services can started????

i still can resolve this problem,the web services always return an error because i can't send byte array

© Stack Overflow or respective owner

Related posts about php