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