Upload image to server and store image path in mysql database

后端 未结 2 671
梦谈多话
梦谈多话 2020-12-11 13:02

I followed this tutorial to upload a image to the server.

Now my question is how can I modifiy the code to save the image path additionally into a MySql dat

相关标签:
2条回答
  • 2020-12-11 13:32

    SQL:

    CREATE TABLE `uploads` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `filename` varchar(255) NOT NULL,
      `path` varchar(255) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    

    PHP:

    $file_path = "uploads/";
    
    $file_path = $file_path . basename( $_FILES['uploaded_file']['name']);
    if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
      // replace $host,$username,$password,$dbname with real info
      $link=mysqli_connect($host,$username,$password,$dbname);
      mysqli_query($link,"INSERT INTO `files` (filename,path) VALUES ('".$_FILES['uploaded_file']['tmp_name']."','".$file_path."')") or trigger_error($link->error."[ $sql]");
      mysqli_close($link);
    
    } else{
        echo "fail";
    
    0 讨论(0)
  • 2020-12-11 13:32
    package com.example.jojo.traveldiary;
    import android.content.Intent;
    import android.database.Cursor;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.net.Uri;
    import android.os.Bundle;
    import android.os.Environment;
    import android.provider.MediaStore;
    import android.support.design.widget.TextInputLayout;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.Toolbar;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.EditText;
    import android.widget.ImageView;
    import android.widget.ProgressBar;
    import android.widget.Spinner;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import com.loopj.android.http.AsyncHttpClient;
    import com.loopj.android.http.JsonHttpResponseHandler;
    import com.loopj.android.http.RequestParams;
    
    import org.apache.http.Header;
    import org.json.JSONException;
    import org.json.JSONObject;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    public class Add_Trip_Details extends AppCompatActivity 
        {
          EditText title;
          EditText date;
          EditText time;
    EditText discription;
    TextView heading;
    ImageView browseimg;
    ImageView captureimg;
    ImageView image;
    Spinner l;
    String imgphoto=null;
    String placenameid;
    String tripplace;
    String tripdate;
    ProgressBar progress;
    private  Toolbar toolbar;
    TextInputLayout titleerror;
    TextInputLayout descriptionerror;
    int a=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add__trip__details);
        placenameid=getIntent().getStringExtra("key");
        tripplace=getIntent().getStringExtra("pey");
        tripdate=getIntent().getStringExtra("dey");
        String currentdate=new SimpleDateFormat("yyyy-MM-dd").format(new Date());
        Calendar c = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a");
        String strDate = sdf.format(c.getTime());
        heading= (TextView) findViewById(R.id.heading);
        heading.setText("Add  Details To Your "+tripplace+" Trip");
        titleerror= (TextInputLayout) findViewById(R.id.view);
        descriptionerror= (TextInputLayout) findViewById(R.id.view1);
        title= (EditText) findViewById(R.id.editText12);
        date= (EditText) findViewById(R.id.editText13);
        time= (EditText) findViewById(R.id.editText14);
        discription= (EditText) findViewById(R.id.editText15);
        browseimg= (ImageView) findViewById(R.id.imageView);
        captureimg= (ImageView) findViewById(R.id.imageView2);
        image= (ImageView) findViewById(R.id.imageView3);
        progress= (ProgressBar) findViewById(R.id.progressBar4);
        progress.setVisibility(View.INVISIBLE);
        date.setText(currentdate);
        time.setText(strDate);
        l=(Spinner) findViewById(R.id.spinner);
        String a[]={"Private","Public"};
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,a);
        l.setAdapter(adapter);
        toolbar= (Toolbar) findViewById(R.id.include);
        setSupportActionBar(toolbar);
    
    
    }
    
    public  void browseImg(View view)
    {
       Intent in=new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
       startActivityForResult(in, 1);
       // Intent intent = new Intent();
        //intent.setType("image/*");
        //intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
        //intent.setAction(Intent.ACTION_GET_CONTENT);
        //startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);
    }
    public  void  captureImg(View view)
    {
        Intent in=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(in, 2);
    }
    public  void submit()
    {
    
       String status= l.getSelectedItem().toString();
        String titlestring=title.getText().toString();
        String descriptionstring=discription.getText().toString();
        String datestring=date.getText().toString();
        String timestring=time.getText().toString();
    
        //Add_Trip_Details_AsyncTask asynctask=new Add_Trip_Details_AsyncTask(this,status,titlestring,descriptionstring,placenameid);
        //asynctask.execute("");
        if(titlestring.equals(""))
        {
            titleerror.setErrorEnabled(true);
            titleerror.setError("Enter a titile ");
            a=1;
    
        }
        else
        {
            titleerror.setErrorEnabled(false);
            a=0;
        }
       if(descriptionstring.equals(""))
        {
            descriptionerror.setErrorEnabled(true);
            descriptionerror.setError("Enter Discription ");
            a=1;
        }
       else
       {
           titleerror.setErrorEnabled(false);
           a=0;
       }
       /* if(imgphoto.equals(""))
        {
            Toast.makeText(this, "insert an image", Toast.LENGTH_LONG).show();
            a=1;
        }
        else
        {
    
            a=0;
        }*/
    
        if(a==0)
        {
            progress.setVisibility(View.VISIBLE);
        AsyncHttpClient client=new AsyncHttpClient();
        RequestParams params=new RequestParams();
        params.put("title",titlestring);
        params.put("discription", descriptionstring);
        params.put("status", status);
        params.put("p_id", placenameid);
            params.put("trip_date", datestring);
            params.put("cre_time", timestring);
        try {
            params.put("im_name", new File(imgphoto));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
      //  Log.e("img path ", imgphoto.toString());
      client.post(AppConstant.WEB_URL+"trip_details.php", params, new JsonHttpResponseHandler() {
            @Override
            public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
                super.onSuccess(statusCode, headers, response);
    
                try {
    
                    String status = response.getString("status");
                    Toast.makeText(getApplicationContext(), status, Toast.LENGTH_LONG).show();
                    progress.setVisibility(View.INVISIBLE);
                    finish();
                    Intent in = new Intent(Add_Trip_Details.this, View_Trip_Details.class);
                    in.putExtra("iey", placenameid);
                    in.putExtra("pey", tripplace);
                    in.putExtra("dey", tripdate);
                    startActivity(in);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
    
            }
    
            @Override
            public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
                super.onFailure(statusCode, headers, responseString, throwable);
                Toast.makeText(getApplicationContext(), "faild", Toast.LENGTH_LONG).show();
                progress.setVisibility(View.INVISIBLE);
            }
    
            @Override
            public void onStart() {
                super.onStart();
            }
    
            @Override
            public void onFinish() {
                super.onFinish();
            }
        });
            /*client.post("http://192.168.1.11/Travel_Dairy/trip_details.php", params, new AsyncHttpResponseHandler() {
    
    
                @Override
                public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
                    Toast.makeText(getApplicationContext(), "sucess", Toast.LENGTH_LONG).show();
                    progress.setVisibility(View.INVISIBLE);
                    finish();
                    Intent in = new Intent(Add_Trip_Details.this, View_Trip_Details.class);
                    in.putExtra("iey", placenameid);
                    in.putExtra("pey", tripplace);
                    in.putExtra("dey", tripdate);
                    startActivity(in);
                    finish();
                    // Intent in = new Intent(ViewOREdit.this, Home.class);
                    // startActivity(in);
    
                }
    
                @Override
                public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
                    Toast.makeText(getApplicationContext(), "faild", Toast.LENGTH_LONG).show();
    
                }
            });*/
       //finish();
        }
    
    }
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    
        Calendar calender=Calendar.getInstance();
        Long lo=calender.getTimeInMillis();
    
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode==2)
        {
          try
          {
              Bitmap bt=(Bitmap) data.getExtras().get("data");
              image.setImageBitmap(bt);
              savePhoto(bt,lo+".jpg");
          }
          catch(Exception e)
          {
              e.printStackTrace();
          }
    
        }
        else if(requestCode==1)
        {
    try
     {
      Uri uri=data.getData();
      String[] path={MediaStore.Images.Media.DATA};
      Cursor cur=getContentResolver().query(uri, path, null, null, null);
      cur.moveToFirst();
      int a=cur.getColumnIndex(path[0]);
      String c=cur.getString(a);
      cur.close();
      image.setImageBitmap(BitmapFactory.decodeFile(c));
      savePhoto(BitmapFactory.decodeFile(c),lo+".jpg");
    }
    catch(Exception e)
     {
      e.printStackTrace();
     }
    
    
    
        }
    }
    public void savePhoto(Bitmap imagetosave,String filename) {
        File direct=new File(Environment.getExternalStorageDirectory()+"MyTravelDiary");
        if(!direct.exists())
        {
            File newdirectory=new File("/sdcard/MyTravelDiary");
            newdirectory.mkdirs();
    
        }
        File file=new File(new File("/sdcard/MyTravelDiary"),filename);
        if(file.exists())
        {
            file.delete();
        }
        try
        {
            FileOutputStream fo=new FileOutputStream(file);
            imagetosave.compress(Bitmap.CompressFormat.JPEG, 100, fo);
            fo.flush();
            fo.close();
            imgphoto="/sdcard/MyTravelDiary/"+filename;
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_add__trip__details, menu);
        return true;
    }
    
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        //noinspection SimplifiableIfStatement
        if (id == R.id.submit) {
            submit();
            return true;
        }
    
        return super.onOptionsItemSelected(item);
    }
    

    }

    0 讨论(0)
提交回复
热议问题