java – 如何通过在android中捕获到php来保存图像?

前端之家收集整理的这篇文章主要介绍了java – 如何通过在android中捕获到php来保存图像?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我们已经尝试了AndroidPHP的这个代码.请看下面的代码.

Android的

  1. Scn.setOnClickListener(new OnClickListener() {
  2. @Override
  3. public void onClick(View v) {
  4. // TODO Auto-generated method stub
  5. // Open default camera
  6. Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  7. // start the image capture Intent
  8. startActivityForResult(intent,100);
  9. }
  10. }
  11. protected void onActivityResult(int requestCode,int resultCode,Intent intent) {
  12. if (requestCode == 100 && resultCode == RESULT_OK) {
  13. selectedImage = intent.getData();
  14. imageBitmap = (Bitmap) intent.getExtras().get("data");
  15. ByteArrayOutputStream baos = new ByteArrayOutputStream();
  16. imageBitmap.compress(Bitmap.CompressFormat.JPEG,40,baos);
  17. imageView1.setImageBitmap(imageBitmap);
  18. byte[] imageBytes = baos.toByteArray();
  19. String encodedImage = Base64.encodeToString(imageBytes,Base64.DEFAULT);
  20. submitData(encodedImage);
  21. }
  22. }
  23. public void submitData(final String encodedImage) {
  24. try {
  25. new Thread(new Runnable() {
  26. @Override
  27. public void run() {
  28. try {
  29. //Looper.prepare();
  30. Log.d("looper","-->>>>");
  31. try
  32. {
  33. isAuthorized = isAuthenticated(encodedImage);
  34. }
  35. catch (Exception e)
  36. {
  37. Log.e("Exception ==> ",e.toString());
  38. }
  39. MHandler.post(new Runnable() {
  40. @Override
  41. public void run() {
  42. try {
  43. if(isAuthorized){
  44. if(AuthenticationResultJSONObject!=null){
  45. String message = AuthenticationResultJSONObject.getString("message");
  46. if(AuthenticationResultJSONObject.getString("status").equalsIgnoreCase("1"))
  47. {
  48. Toast.makeText(ScannerActivity.this,message,Toast.LENGTH_SHORT).show();
  49. }
  50. else if (AuthenticationResultJSONObject.getString("status").equalsIgnoreCase("0"))
  51. {
  52. Toast.makeText(ScannerActivity.this,Toast.LENGTH_SHORT).show();
  53. }
  54. }
  55. }
  56. else
  57. {
  58. Toast.makeText(ScannerActivity.this,"Loing unsuccessfull,please try again !",Toast.LENGTH_SHORT).show();
  59. }
  60. }
  61. catch (Exception e)
  62. {
  63. e.printStackTrace();
  64. Log.e("Exception 146==> ",e.toString());
  65. }
  66. finally
  67. {
  68. //progressdialog.dismiss();
  69. //progress.dismissProgressDialog();
  70. }
  71. }
  72. });
  73. } catch (Exception e) {
  74. Log.e("Exception 153==> ",e.toString());
  75. }
  76. }
  77. }).start();
  78. } catch (Exception e) {
  79. Log.e("Exception 159==> ",e.toString());
  80. }
  81. }
  82. public boolean isAuthenticated(final String encodedImage)
  83. {
  84. isAuthorized = false;
  85. String encoder1 = "";
  86. final String url="http://bestpeopleservice.com/projects/scanner/api/api/api.PHP?class=login&method=login_data&json=";
  87. String finalurl = "{\"data\":{\"qr_code\":\""+username1+"\",\"user_pass\":\""+password1+"\",\"longitude\":\""+longitude1+"\",\"latitude\":\""+latitude1+"\",\"addeRSS\":\""+addeRSS1+"\",\"images\":\""+encodedImage+"\"}}";//
  88. Log.v("267 1111111","done url -> "+url+finalurl);
  89. try {
  90. encoder1 = URLEncoder
  91. .encode(finalurl,"UTF-8");
  92. Log.v("267 222","done url 2 -> "+url+encoder1);
  93. }
  94. catch (UnsupportedEncodingException e1)
  95. {
  96. e1.printStackTrace();
  97. }
  98. try {
  99. if (isNetworkConnected()) {
  100. AuthenticationResultJSONObject = new JSONObject(doFetchDataFromWebService_Simple_OnlyJSONResponse(url+encoder1));
  101. Log.v("Online","User json array === "+AuthenticationResultJSONObject);
  102. }else{
  103. Toast.makeText(ScannerActivity.this,"Please check your internet connection and try again.",Toast.LENGTH_SHORT).show();
  104. }
  105. }
  106. catch(Exception e){
  107. e.getMessage();
  108. }
  109. finally{
  110. if(AuthenticationResultJSONObject!=null){
  111. isAuthorized = true;
  112. }
  113. else
  114. {
  115. isAuthorized=false;
  116. }
  117. }
  118. // }
  119. // });
  120. return isAuthorized;
  121. }
  122. // Checking the internet connection
  123. public boolean isNetworkConnected() {
  124. ConnectivityManager connectivitymanagar = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
  125. NetworkInfo networkinfo = connectivitymanagar.getActiveNetworkInfo();
  126. if (networkinfo == null || !networkinfo.isConnectedOrConnecting()) {
  127. return false;
  128. } else {
  129. return true;
  130. }
  131. }
  132. public String doFetchDataFromWebService_Simple_OnlyJSONResponse(
  133. String WebServiceURL) {
  134. String responseBody = "";
  135. JSONObject jobj = new JSONObject();
  136. try {
  137. HttpGet WSHttpPost = null;
  138. HttpClient WSHttpClient = null;
  139. HttpResponse WSHttpResponse = null;
  140. WSHttpClient = getNewHttpClient();
  141. WSHttpPost = new HttpGet(WebServiceURL);
  142. WSHttpResponse = WSHttpClient.execute(WSHttpPost);
  143. Log.d("resp",""+WSHttpResponse);
  144. //responseBody = EntityUtils.toString(WSHttpResponse.getEntity());
  145. responseBody = EntityUtils.toString(WSHttpResponse.getEntity(),"UTF-8");
  146. Log.v("response1","" + responseBody);
  147. } catch (Exception e) {
  148. Log.e("Exception2 ==> ",e.toString());
  149. }
  150. if (responseBody == null || responseBody.equalsIgnoreCase("null")) {
  151. return "";
  152. } else {
  153. return responseBody;
  154. }
  155. }
  156. public HttpClient getNewHttpClient() {
  157. try {
  158. KeyStore trustStore = KeyStore.getInstance(KeyStore
  159. .getDefaultType());
  160. trustStore.load(null,null);
  161. SSLSocketFactory sf = new MySSLSocketFactory(trustStore);
  162. sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
  163. HttpParams params = new BasicHttpParams();
  164. HttpProtocolParams.setVersion(params,HttpVersion.HTTP_1_1);
  165. HttpProtocolParams.setContentCharset(params,HTTP.UTF_8);
  166. SchemeRegistry registry = new SchemeRegistry();
  167. registry.register(new Scheme("http",PlainSocketFactory
  168. .getSocketFactory(),80));
  169. registry.register(new Scheme("https",sf,443));
  170. ClientConnectionManager ccm = new ThreadSafeClientConnManager(
  171. params,registry);
  172. return new DefaultHttpClient(ccm,params);
  173. } catch (Exception e) {
  174. return new DefaultHttpClient();
  175. }
  176. }
  177. public class MySSLSocketFactory extends SSLSocketFactory {
  178. SSLContext sslContext = SSLContext.getInstance("TLS");
  179. public MySSLSocketFactory(KeyStore truststore)
  180. throws NoSuchAlgorithmException,KeyManagementException,KeyStoreException,UnrecoverableKeyException {
  181. super(truststore);
  182. TrustManager tm = new X509TrustManager() {
  183. public void checkClientTrusted(X509Certificate[] chain,String authType) throws CertificateException {
  184. }
  185. public void checkServerTrusted(X509Certificate[] chain,String authType) throws CertificateException {
  186. }
  187. public X509Certificate[] getAcceptedIssuers() {
  188. return null;
  189. }
  190. };
  191. sslContext.init(null,new TrustManager[] { tm },null);
  192. }
  193. @Override
  194. public Socket createSocket(Socket socket,String host,int port,boolean autoClose) throws IOException,UnknownHostException {
  195. return sslContext.getSocketFactory().createSocket(socket,host,port,autoClose);
  196. }
  197. @Override
  198. public Socket createSocket() throws IOException {
  199. return sslContext.getSocketFactory().createSocket();
  200. }
  201. }

它返回解析字节串.它的价值太长了.

PHP

  1. $base=$Data['images'];
  2. $binary=base64_decode($base);
  3. header('Content-Type: bitmaps; charset=utf-8');
  4. header("Content-Length: " . mb_strlen($base,'8bit'));
  5. $file = fopen('qr_code.jpeg','wb');
  6. fwrite($file,$binary);
  7. fclose($file);
  8. echo 'Image upload complete!!,Please check your PHP file directory';

以上代码正在运行.但它有一些问题.图像在文件夹中成功保存,但图像将显示为已损坏.我们如何解决这个问题.

提前致谢.

最佳答案
请尝试此代码,此代码适合我.

  1. PHP
  2. // Path to move uploaded files
  3. $target_path = "uploads/";
  4. // array for final json respone
  5. $response = array();
  6. // getting server ip address
  7. $server_ip = gethostbyname(gethostname());
  8. // final file url that is being uploaded
  9. $file_upload_url = 'http://' . $server_ip . '/' . '/xyz/' . '/' . $target_path;
  10. if (isset($_FILES['image']['name'])) {
  11. $target_path = $target_path . basename($_FILES['image']['name']);
  12. // reading other post parameters
  13. $email = isset($_POST['email']) ? $_POST['email'] : '';
  14. $website = isset($_POST['website']) ? $_POST['website'] : '';
  15. $response['file_name'] = basename($_FILES['image']['name']);
  16. $response['email'] = $email;
  17. $response['website'] = $website;
  18. try {
  19. // Throws exception incase file is not being moved
  20. if (!move_uploaded_file($_FILES['image']['tmp_name'],$target_path)) {
  21. // make error flag true
  22. $response['error'] = true;
  23. $response['message'] = 'Could not move the file!';
  24. }
  25. // File successfully uploaded
  26. $response['message'] = 'File uploaded successfully!';
  27. $response['error'] = false;
  28. $response['file_path'] = $file_upload_url . basename($_FILES['image']['name']);
  29. } catch (Exception $e) {
  30. // Exception occurred. Make error flag true
  31. $response['error'] = true;
  32. $response['message'] = $e->getMessage();
  33. }
  34. } else {
  35. // File parameter is missing
  36. $response['error'] = true;
  37. $response['message'] = 'Not received any file!F';
  38. }
  39. // Echo final json response to client
  40. echo json_encode($response);
  41. ?>

猜你在找的Android相关文章