簡體   English   中英

圖片在android中使用php上傳大小為0字節

[英]Image is uploading of size 0 byte using php in android

我正在制作一個Android應用程序,使用php上傳mysql數據庫中的圖像。 即時通訊保存在目錄[$ path =“ uploads / $ id.png”; $ actualpath =“ http://www.bsservicess.com/photoUpload/ $ path”]。

問題是圖像正在上載到目錄,但是圖像的大小顯示為0字節。 我不知道是什么問題。它工作得很早,但我不知道為什么它現在上傳0字節的圖像大小。 我嘗試了一切但沒有任何作用。 如果有人知道解決方案,請幫助我。

 <?php 
 if($_SERVER['REQUEST_METHOD']=='POST'){

    $photo= $_POST['photo'];
    $bookname=$_POST['bookname'];
            $phoneNumber=$_POST['phoneNumber'];
            $price=$_POST['price'];

    require_once('loginConnect.php');

    $sql ="SELECT id FROM images ORDER BY id ASC";

    $res = mysqli_query($con,$sql);

    $id = 0;

    while($row = mysqli_fetch_array($res)){
            $id = $row['id'];
    }

    $path = "uploads/$id.png";

    $actualpath = "http://www.bsservicess.com/photoUpload/$path";

    $sql = "INSERT INTO images (photo,bookname,phoneNumber,price) VALUES
     ('$actualpath','$bookname','$phoneNumber','$price')";

    if(mysqli_query($con,$sql)){
        file_put_contents($path,base64_decode($photo));
        echo "Successfully Uploaded";
    }

    mysqli_close($con);
  }else{
    echo "Error";
 }
?


 enter code here> Blockquote

   package com.manali.vivek.userregistration;

   import android.app.ProgressDialog;
   import android.content.Intent;
   import android.graphics.Bitmap;``
   import android.net.Uri;
   import android.os.AsyncTask;
   import android.os.Bundle;
   import android.provider.MediaStore;
   import android.support.v7.app.ActionBarActivity;
   import android.util.Base64;
   import android.view.View;
   import android.widget.Button; 
   import android.widget.EditText;
   import android.widget.ImageView;
   import android.widget.Toast;

   import java.io.ByteArrayOutputStream;
   import java.io.IOException;
   import java.util.HashMap;


 public class image extends ActionBarActivity implements
  View.OnClickListener    
 {

   public static final String UPLOAD_URL =
    "http://www.bsservicess.com/photoUpload/uploadImage.php";
   public static final String UPLOAD_KEY = "image";

   private int PICK_IMAGE_REQUEST = 1;

   private Button buttonChoose;
   private Button buttonUpload;
   private Button buttonView;

   private ImageView imageView;

   private Bitmap bitmap;

   private Uri filePath;
   EditText et1,et2,et3;

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_image);

    buttonChoose = (Button) findViewById(R.id.buttonChoose);
    buttonUpload = (Button) findViewById(R.id.buttonUpload);
    buttonView = (Button) findViewById(R.id.buttonViewImage);
    et1=(EditText)findViewById(R.id.et1);
    et2=(EditText)findViewById(R.id.et2);
    et3=(EditText)findViewById(R.id.et3);
    imageView = (ImageView) findViewById(R.id.imageView);

    buttonChoose.setOnClickListener(this);
    buttonUpload.setOnClickListener(this);
    buttonView.setOnClickListener(this);
  }

  private void showFileChooser() {
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent, "Select Picture"), 
 PICK_IMAGE_REQUEST);
 }

 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent 
  data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data
   != null && data.getData() != null) {

        filePath = data.getData();
        try {

            bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),   
       filePath);
            imageView.setImageBitmap(bitmap);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
   }

   public String getStringImage(Bitmap bmp){
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
    byte[] imageBytes = baos.toByteArray();


   String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
    return encodedImage;
   }


   private void uploadImage(){


        class UploadImage extends AsyncTask<Bitmap,Void,String>{

        ProgressDialog loading;
        RequestHandler rh = new RequestHandler();

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            loading = ProgressDialog.show(image.this, "Uploading Image",
         "Please wait...",true,true);
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            loading.dismiss();

         Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show();
        }

        @Override
        protected String doInBackground(Bitmap... params) {

            Bitmap bitmap = params[0];
            String uploadImage = getStringImage(bitmap);
            String bookname=et1.getText().toString();
            String  phoneNumber=et2.getText().toString();
            String price=et3.getText().toString();

            HashMap<String,String> data = new HashMap<>();
            data.put(UPLOAD_KEY, uploadImage);

            data.put(Fetch.BOOK_NAME,bookname);
            data.put(Fetch.PHONE_NUMBER,phoneNumber);
            data.put(Fetch.PRICE,price);



            String result = rh.sendPostRequest(UPLOAD_URL,data);

            return result;
        }

    }

    UploadImage ui = new UploadImage();

    ui.execute(bitmap);


    }







 @Override
  public void onClick(View v) {
    if (v == buttonChoose) {
        showFileChooser();
    }
    if(v == buttonUpload){
    uploadImage();

    }


    if(v == buttonView){
        viewImage();
    }
  }


private void viewImage() {
    startActivity(new Intent(image.this, Main.class));
     }
 }

大段引用

您可以仔細檢查您的代碼嗎? 您的$photo永遠不會使用,並且您嘗試解碼的$image也為null。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM