如何从我的网站上的应用程序接收文件?

问题描述 投票:-3回答:1

我希望我的Android应用程序的用户能够使用http将zip文件发送到我的服务器。我想象的用例看起来像这样:

  • 用户使用HttpClientHttpPost(如here所述)向我的服务器发送一个zip文件和一个包含密码的字符串。
  • 通过使用现有密码登录www.example.com/my_app,用户可以使用给定密码下载人们发送到我服务器的文件。

我不明白如何做第二步。我需要在我的网站上编写哪些代码才能接收Android用户发送的文件?我的托管计划下有一个共享服务器和一个简单的网站。

android web-services http server
1个回答
1
投票

首先需要修改上传代码(因为文件上传被视为多部分数据)。这是修改后的上传代码 -

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作为上传文件的参数键。在服务器代码上,您可以为$ _FILES [“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);
?>
© www.soinside.com 2019 - 2024. All rights reserved.