【问题标题】:Example how to serve using php an upload from android device示例如何使用 php 从 android 设备上传
【发布时间】:2011-09-30 20:35:12
【问题描述】:

我是 android 的新手,但是查看网络和一些书籍,我制作了一个必须发送图像和另外两个参数的应用程序。我只想制作一个 php 服务脚本来检查数据是否上传/发送正常。

这是我的代码:

public void executeMultipartPost() //throws Exception
    {
        try {
            //convert image to stream, strImage is an image converted to string
            InputStream is          = new ByteArrayInputStream( this.strImage.getBytes("UTF-8") );  
            HttpClient httpClient   = new DefaultHttpClient();
            HttpPost postRequest    = new HttpPost("http://192.168.12.12/androidlistener/test.php");
            byte[] data             = IOUtils.toByteArray(is);
            InputStreamBody isb     = new InputStreamBody(new ByteArrayInputStream(data), "uploadedFile");
            //These params were filled in before this process

            StringBody sPhoneId     = new StringBody(strPhoneId);
            StringBody sMessage     = new StringBody(strMessage);

            MultipartEntity multipartContent = new MultipartEntity();
            multipartContent.addPart("uploadedFile", isb);
            multipartContent.addPart("phoneid", sPhoneId);
            multipartContent.addPart("msg", sMessage);
            postRequest.setEntity(multipartContent);
            HttpResponse response   = httpClient.execute(postRequest);
            response.getEntity().getContent().close();
        } catch (Throwable e)
        {
            // Manejar error
        }
    }

所以我需要帮助来制作 php 脚本。提前谢谢你。

【问题讨论】:

    标签: php android http upload multipart


    【解决方案1】:

    您应该添加一个要上传的实体,它是一个校验和(不低于 md5 记住电池寿命)。然后,您将服务器端的图像校验和与“uploadedFile”实体进行比较。我有点忘记了 HTTP 的工作原理,但建议使用 Base64 上传文件。

    一个简单的校验和看起来像 multipartContent.addPart("checksum", isb.getContentLength);

    这将在不实际检查一致性的情况下检查上传的字节,在您的平均环境中这很好,因为位不太可能在传输过程中移动,除非它们是中间人。

    公平地说,您也可以几乎只检查以确保 msg 包含在 post 值中,如果是这样,连接不太可能断开,因为它会最后发送,但最佳做法是通过。

    【讨论】:

    • 感谢您的建议,但我需要朋友的 php 脚本方面的帮助。可以举个例子吗?
    猜你喜欢
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    • 2021-12-11
    • 2021-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多