图像正在安卓中使用 php 上传大小为 0 字节的图像


Image is uploading of size 0 byte using php in android

我正在制作一个安卓应用程序,使用 php 将图像上传到 mysql 数据库中。我保存在目录中 [$path = "上传/$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也是空的。