2016-04-07 1 views
0

привет всем, что я делаю приложение Android для загрузки изображения в mysql db, используя php, и он работает правильно. Прикрепление загружает изображение в базу данных успешно, но проблема в том, что я могу загружать только изображение меньшего размера только в kbs.I хочу, чтобы он загружал изображение в mbs.I попробовать все, но ничего не работает до now.plz кто-то мне помогает ... мой код для загрузки изображения в php:Как загрузить изображение большего размера в базу данных mysql с помощью php в android

<?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"; 
} 
?> 

И мой андроид активности для загрузки изображения является:

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 = "photo"; 

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); 
} 


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.PNG, 10, 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)); 
} 


    ///////toolbar 

    } 
+0

проверить, что размер не более загрузки установлен в вашей системе –

+0

file_uploads = О post_max_size = 400M upload_max_filesize = 500M memory_limit = 128M вот что дано в моей php.ini –

+0

эй приятель плз помочь мне. Я уже потратил много времени. –

ответ

0

Какой тип столбца вы храните base64? попробуйте текст или blob .. Возможно, текст слишком длинный для обработки типа данных. дикая догадка только

+0

thanx для ответа я использую varchar для загрузки изображения, теперь я должен изменить его на текст. –

+0

, пожалуйста, отметьте его как ответ, если он решит ваш ответ: D –

+0

nope, который не решает проблему –

Смежные вопросы