Android nije baš nešto web service friendly, tako da taj koji radi klijentsku aplikaciju bi svakako morao da se maltretira sa xml-om i da radi HTTP request.
Najjednostavnije tebi iz serverskog ugla je da uradiš sledeće ima detaljnije upustvo na sajtu:
http://www.w3schools.com/php/php_file_upload.asp
Code:
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
Sa ovom formom možeš da istestiraš svoj program
Code:
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
Onaj koji radi klijentski dio će svakako morati da odradi sličnu količinu posla bez obzira odlučio se ti za web service ili običan file upload putem forme.
Možete još radi sigurnosti da uradite hash na jednoj i na drugoj strani i da i to šaljete kao request parametar pa da budete sigurni da je file ispravno upload-owan.
A hint za onoga koji radi klijentsku aplikaciju je da koristi org.apache.http paket i klasu MultipartEntity ima mnogo primjetra na netu kako da uradi ovo što mu treba.