我希望我的Android应用程序的用户能够使用http
将zip文件发送到我的服务器。我想象的是这样的用例:
-
用户使用
HttpClient
和HttpPost
(如下所述)发送一个包含密码的ZIP文件和一个字符串。 -
通过使用现有密码登录
www.example.com/my_app
,用户可以下载人们通过给定密码发送到我的服务器的文件。
我不明白如何做第二步。我需要在网站上编写什么代码才能接收Android用户一直发送的文件?我在托管计划和一个简单的网站下有共享服务器。
您首先需要修改上传代码(因为文件上传被视为多部分数据)。这是修改的上传代码 -
String url = "http://localhost/upload.php";
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath(),
"file.txt");
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
Part[] parts = new Part[1];
parts[0] = new FilePart("fileToUpload", file);
MultipartEntity reqEntity = new MultipartEntity(parts);
reqEntity.setContentType("binary/octet-stream");
reqEntity.setChunked(true); // Send in multiple parts if needed
httppost.setEntity(reqEntity);
HttpResponse response = httpclient.execute(httppost);
} catch (Exception e) {
e.printStackTrace();
}
在这里,我使用 FileToupload 作为上传文件的参数键。在服务器代码上,您可以为 $ _文件[" FileToupload"] 使用相同的密钥。这是最简单的PHP代码,该代码接受了上面的Android代码上传数据 -
<?php
$target_dir = "/Users/chauhan/Desktop/uploads/";
$target_file = $target_dir . basename("abc.txt");
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file);
?>