|
|
|
การบันทึกข้อมูลจาก Android ลงใน MySQL หรือ SQL Server เจาะจงข้อความ และใส่รูปภาพหรือไม่ก็ได้? |
|
|
|
|
|
|
|
การบันทึกข้อมูลจาก Android ลงใน MySQL หรือ SQL Server ถ้าในข้อมูลจะมี
1. ชื่อ
2. เบอร์โทรศัพท์
3. รูปภาพ
โดยจะบังคับต้องกรอก ชื่อ และ เบอร์โทรศัพท์ ส่วน รูปภาพ จะใส่หรือไม่ใส่ก็ได้
Code ในส่วนของ Android (Java) จะตั้งขึ้นมาได้อย่างไรเกี่ยวกับรูปภาพ จะมี Code ที่ได้สร้างเฉพาะในส่วนของการแสดงก่อนบันทึก และบันทึก
Code (Android-Java)
package com.android.car;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import org.apache.http.NameValuePair;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import org.apache.http.message.BasicNameValuePair;
import java.util.List;
import android.os.StrictMode;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import org.json.JSONException;
import org.json.JSONObject;
import android.widget.Toast;import java.io.BufferedReader;
import java.io.InputStream;
import android.util.Log;
import android.app.AlertDialog;
import java.io.ByteArrayOutputStream;
public class SaveActivity extends ActionBarActivity {
// ประกาศตัวแปร
private TextView name, tel;
private String name1, tel1;
private String pathSignature;
private Button ok;
private ImageView signatureView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_save);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
init(); // แยกประกอบรับค่ามาจาก XML
intents(); // แสดงค่าที่รับมาจาก File กรอกข้อมูล
totamsum(); // ผสมระหว่าง File กรอกข้อมูล เข้าสู่รับค่าจาก XML
okbutton(); // ทำการบันทึกเข้า MySQL หรือ SQL Server
}
private void init() { // รับค่า XML
name = (TextView) findViewById(R.id.name);
tel = (TextView) findViewById(R.id.tel);
ok = (Button) findViewById(R.id.ok);
signatureView = (ImageView)findViewById(R.id.signatureView);
}
private void intents() { // แสดงค่าจาก File กรอกข้อมูล
Intent save11 = getIntent();
name1 = save11.getStringExtra("name");
tel1 = save11.getStringExtra("tel");
pathSignature = save11.getStringExtra("pathSignature");
}
private void totamsum() { // ผสมระหว่าง File กรอกข้อมูล เข้ารับค่าจาก XML
name.setText(name1);
tel.setText(tel1);
signatureView.setImageBitmap(BitmapFactory.decodeFile(pathSignature));
}
private void okbutton() { // ทำการบันทึก
ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(SaveData()) {
}
}
});
}
public boolean SaveData() {
final AlertDialog.Builder ad = new AlertDialog.Builder(this); // ตรวจสอบการผิดพลาด
ad.setTitle("Error! ");
ad.setIcon(android.R.drawable.btn_star_big_on);
ad.setPositiveButton("Close", null);
URLEdit.url_Save(); // ส่งไปยัง File บันทึก URL
String url = URLEdit.url_Save(); // รับจาก File บันทึก URL
String strSDPath = pathSignature.toString(); // รูปภาพ ซึ่งจะใส่หรือไม่ใส่ก็ได้
String resServer = uploadFiletoServer(strSDPath, url);
List<NameValuePair> params = new ArrayList<NameValuePair>(); // รับตัวแปรพร้อมส่งไปยัง PHP เพื่อบันทึกลง MySQL หรือ SQL Server
params.add(new BasicNameValuePair("nName", name.getText().toString()));
params.add(new BasicNameValuePair("nTel", tel.getText().toString()));
params.add(new BasicNameValuePair("pic_file", pathSignature.toString()));
params.add(new BasicNameValuePair("pic_name", resServer.toString()));
getJSONUrl.getUrl(url, params); // ประมวลผล
String resultServer = getJSONUrl.returnString();
String strStatusID = "0";
String strError = "Unknow!";
String strName = "";
JSONObject c;
try {
c = new JSONObject(resultServer);
strStatusID = c.getString("StatusID");
strError = c.getString("Error");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (strStatusID.equals("1")) {
ad.setMessage(strError);
ad.show();
} else {
Toast.makeText(SaveActivity.this, "Save Finish", Toast.LENGTH_SHORT).show();
}
return true;
}
public String uploadFiletoServer(String strSDPath, String url) { // ประมวลรูปภาพ
int bytesRead, bytesAvailable, bufferSize;
byte[] buffer;
int maxBufferSize = 1 * 1024 * 1024;
int resCode = 0;
String resMessage = "";
String lineEnd = "\r\n";
String twoHyphens = "--";
String boundary = "*****";
try {
File file = new File(strSDPath);
if(!file.exists()) {
return "{\"StatusID\":\"0\",\"Error\":\"Please check path on SD Card\"}";
}
FileInputStream fileInputStream = new FileInputStream(new File(strSDPath));
URL url1 = new URL(url);
HttpURLConnection conn = (HttpURLConnection) url1.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
DataOutputStream outputStream = new DataOutputStream(conn.getOutputStream());
outputStream.writeBytes(twoHyphens + boundary + lineEnd);
outputStream.writeBytes("Content-Disposition: form-data; name=\"pic_name\";filename=\"" + strSDPath + "\"" + lineEnd);
outputStream.writeBytes(lineEnd);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
buffer = new byte[bufferSize];
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
while (bytesRead > 0) {
outputStream.write(buffer, 0, bufferSize);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
}
outputStream.writeBytes(lineEnd);
outputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
resCode = conn.getResponseCode();
if(resCode == HttpURLConnection.HTTP_OK) {
InputStream is = conn.getInputStream();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int read = 0;
while ((read = is.read()) != -1) {
bos.write(read);
}
byte[] result = bos.toByteArray();
bos.close();
resMessage = new String(result);
}
Log.d("resCode=",Integer.toString(resCode));
Log.d("resMessage=",resMessage.toString());
fileInputStream.close();
outputStream.flush();
outputStream.close();
return resMessage.toString();
} catch (Exception ex) {
// Exception handling
return null;
}
}
}
Tag : Mobile, MySQL, Ms SQL Server 2008, Android, JAVA, Mobile
|
|
|
|
|
|
Date :
2015-05-28 09:04:02 |
By :
suparuark |
View :
1994 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากครับ ตอนนี้ทำได้แล้วครับ
|
|
|
|
|
Date :
2015-06-11 15:42:48 |
By :
suparuark |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|