2016-03-19 5 views
1

PHPを使用してmysqlデータベースに画像をアップロードするアン​​ドロイドアプリを作っています。ディレクトリ[$ path = "uploads/$ id.png"; $ actualpath = "http://www.bsservicess.com/photoUpload/ $ path"]画像はアンドロイドでPHPを使用してサイズ0バイトのアップロードです

問題は、画像がディレクトリにアップロードされているが、画像のサイズが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)); 
    } 
} 

BLOCKQUOTE

+0

'$ photo = $ _POST ['photo'];'。 $写真には何が入っていますか?あなたはそれで何もしません。 – greenapps

+0

srry私はそれを$ photoに変更しますが、同じものを表示します.plz help me –

+0

何を変更しましたか?あなたはそれを変更する必要はありません。あなたはそれを使うべきです。 – greenapps

答えて

0

あなたのコードを再確認することはできますか? $photoは決して使用されず、デコードしようとしている$imageもヌルです。

+0

srry私はそれを修正しました...同じplzを助けてください –

+0

あなたのアンドロイドアプリで文字列変換コードにビットマップを投稿できますか? – fmpsagara

+0

返信のためのXXXよりいいですか?私は投稿します...... –