0

我刚刚完成了我的 android 应用程序,它使用本机手机摄像头拍照并录制视频。我现在想用我的手机在我的本地网站上远程上传这些项目(Apache 作为网络服务器,MySQL 作为数据库脚本语言是 php)。但是,该网站在本地运行。我希望创建一个临时的。有人可以帮我用正确的参数在我的手机上编程我的提交按钮,以便成功地将我的数据上传到我的本地 Web 应用程序上。提前谢谢。

4

2 回答 2

1

正如@Antrromet 所说,您必须使用 HttpPost 和Multipart发送文件。

Bitmap这是使用httpmime apache 库以多部分方式发送 a 的方法示例(查看MultipartEntity):

public String doHttpMultipart(String url, 
                              List<NameValuePair> pairs,
                              Bitmap bitmap,
                              String fileName) throws IOException, 
                                            ClientProtocolException,
                                            UnsupportedEncodingException {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();        
        bitmap.compress(CompressFormat.PNG, 100, bos);
        byte[] imageData = bos.toByteArray();
        ByteArrayBody byteArrayBody = new ByteArrayBody(imageData, fileName);
        MultipartEntity reqEntity = 
                    new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);

        reqEntity.addPart("image", byteArrayBody);

        for(NameValuePair p : pairs) {
            reqEntity.addPart(p.getName(), new StringBody(p.getValue()));
        }

        HttpPost request = new HttpPost(url);
        request.setEntity(reqEntity);

        HttpClient client = new DefaultHttpClient();
        HttpResponse httpResponse = client.execute(request);

        String response = "";
        BufferedReader in = null;

        try {
            response = super.readHttpStream(response, in, httpResponse);    
        } catch(IllegalStateException e) {
            throw new IllegalStateException();
        } catch(IOException e) {
            throw new IOException();
        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

        return response;
    }

在这种方法中,我还随请求发送了一个参数列表,并从服务器读取响应。

在后端,您将收到$_FILES变量中的二进制数据。

于 2012-04-30T09:41:51.297 回答
1

要在 android 中上传图像或视频,通常会使用 Multipart 请求,请查看该请求。 此链接对 android 中的 multipart 进行了基本介绍。

于 2012-04-30T08:53:14.510 回答