如何使用android webservice上传视频?

时间:2015-05-11 04:30:36

标签: android video

我想使用PHP webservices将视频文件上传到android。 关于上传video文件,我没有任何想法。

3 个答案:

答案 0 :(得分:2)

这是我使用的必需代码:

 /**
 * Uploading the file to server
 * */
private class UploadFileToServer extends AsyncTask<Void, Integer, String> {
    @Override
    protected void onPreExecute() {
        // setting progress bar to zero
        progressBar.setProgress(0);
        super.onPreExecute();
    }

    @Override
    protected void onProgressUpdate(Integer... progress) {
        // Making progress bar visible
        progressBar.setVisibility(View.VISIBLE);

        // updating progress bar value
        progressBar.setProgress(progress[0]);

        // updating percentage value
        txtPercentage.setText(String.valueOf(progress[0]) + "%");
    }

    @Override
    protected String doInBackground(Void... params) {
        return uploadFile();
    }

    @SuppressWarnings("deprecation")
    private String uploadFile() {
        String responseString = null;

        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(Config.FILE_UPLOAD_URL);

        try {
            AndroidMultiPartEntity entity = new AndroidMultiPartEntity(
                    new ProgressListener() {

                        @Override
                        public void transferred(long num) {
                            publishProgress((int) ((num / (float) totalSize) * 100));
                        }
                    });

            File sourceFile = new File(filePath);

            // Adding file data to http body
            entity.addPart("image", new FileBody(sourceFile));

            // Extra parameters if you want to pass to server
            entity.addPart("website",
                    new StringBody("www.androidhive.info"));
            entity.addPart("email", new StringBody("abc@gmail.com"));

            totalSize = entity.getContentLength();
            httppost.setEntity(entity);

            // Making server call
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity r_entity = response.getEntity();

            int statusCode = response.getStatusLine().getStatusCode();
            if (statusCode == 200) {
                // Server response
                responseString = EntityUtils.toString(r_entity);
            } else {
                responseString = "Error occurred! Http Status Code: "
                        + statusCode;
            }

        } catch (ClientProtocolException e) {
            responseString = e.toString();
        } catch (IOException e) {
            responseString = e.toString();
        }

        return responseString;

    }

    @Override
    protected void onPostExecute(String result) {
        Log.e(TAG, "Response from server: " + result);

        // showing the server response in an alert dialog
        showAlert(result);

        super.onPostExecute(result);
    }

}

为了完全理解,您可以查看this教程。 可以在给定的链接中找到完整的工作源代码。

答案 1 :(得分:1)

您可以在MultipartEntity的帮助下完成。

        HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost(URL);

        MultipartEntity mpEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);

        //Path of the file to be uploaded
        String filepath = params[0];
        File file = new File(filepath);
        ContentBody cbFile = new FileBody(file, SET_MIMETYPE);//"audio/basic"
        try {

            mpEntity.addPart(FILE_NAME, cbFile);
            post.setEntity(mpEntity);
            HttpResponse response1 = client.execute(post);
            HttpEntity resEntity = response1.getEntity();
        } catch (Exception e) {
            e.printStackTrace();
        }

答案 2 :(得分:1)

HttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest=new HttpPost("url");

MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
File file;
FileBody bin;
file=new File("path of your file");
reqEntity.addPart("filename", new FileBody(file));

postRequest.setEntity(reqEntity);

HttpResponse response = httpClient.execute(postRequest);
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
String sResponse;
StringBuilder s = new StringBuilder();
while ((sResponse = reader.readLine()) != null) {
        s = s.append(sResponse);
}
Log.i("response",s.toString());