如何使用 web api 将图像和文本从 android 应用程序发送到 sql server
Posted
技术标签:
【中文标题】如何使用 web api 将图像和文本从 android 应用程序发送到 sql server【英文标题】:How to send Image and text from android application to sql server using web api 【发布时间】:2017-09-24 18:34:11 【问题描述】:我可以单独发送图片和文字,但我想同时发送图片和文字 请任何人帮助我
【问题讨论】:
在此处发布问题前请先搜索 【参考方案1】:使用多部分。使用多部分,您可以使用文本数据发送图像视频和其他文件。各种库可用于多部分发送数据。离子就是其中之一
【讨论】:
【参考方案2】:一种方法是您可以在 web api 中将图像转换为 Base64 字符串
public static String imageToString(Bitmap BitmapData)
ByteArrayOutputStream bos = new ByteArrayOutputStream();
BitmapData.compress(Bitmap.CompressFormat.PNG, 100, bos);
byte[] byte_arr = bos.toByteArray();
String file = Base64.encodeToString(byte_arr, Base64.DEFAULT);
//appendLog(file);
return file;
您可以在上述函数中将位图图像转换为 Base64 字符串,并在您的 api 中传递字符串参数并在服务器端解码这些字符串
【讨论】:
【参考方案3】:感谢大家,特别感谢 Bhupat Bheda。我完成了我的全部项目。现在我想分享我的研究。
private void saveText()
String image= getStringImage(rotatedBMP);
ImageCapture imageCapture = new ImageCapture();
imageCapture.Name = prescriptionName.getText().toString();
imageCapture.Remarks = remarks.getText().toString();
imageCapture.ImageURL=mCurrentPhotoPath;
imageCapture.PhotoName=photoName;
imageCapture.Image=image;
imageCapture.Id = _ImageId_Id;
if (_ImageId_Id == 0)
restService.getService().InsertPrescription(imageCapture, new Callback<ImageCapture>()
@Override
public void success(ImageCapture imageCapture, Response response)
Toast.makeText(Prescription.this, "New Record Inserted.", Toast.LENGTH_LONG).show();
Intent intent=new Intent(getApplicationContext(),Home.class);
startActivity(intent);
@Override
public void failure(RetrofitError error)
Toast.makeText(Prescription.this, error.getMessage().toString(), Toast.LENGTH_LONG).show();
);
private void takePhoto()
dispatchTakePictureIntent();
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
// TODO Auto-generated method stub
Log.i(TAG, "onActivityResult: " + this);
if (requestCode == REQUEST_TAKE_PHOTO && resultCode == Activity.RESULT_OK)
setPic();
String mCurrentPhotoPath;
String photoName;
static final int REQUEST_TAKE_PHOTO = 1;
File photoFile = null;
private void dispatchTakePictureIntent()
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// Ensure that there's a camera activity to handle the intent
if (takePictureIntent.resolveActivity(getPackageManager()) != null)
// Create the File where the photo should go
File photoFile = null;
try
photoFile = createImageFile();
catch (IOException ex)
// Error occurred while creating the File
// Continue only if the File was successfully created
if (photoFile != null)
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(photoFile));
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
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;
了解详情[如何使用 web api 将图像和文本从 android 应用程序发送到 sql server][1]
https://esoftpanel.blogspot.com/2017/04/how-to-send-image-and-text-from-android.html
【讨论】:
以上是关于如何使用 web api 将图像和文本从 android 应用程序发送到 sql server的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Java API 将文本文件、图像存储到 Apache Spark 中?
使用 .net 核心 Web API 和 jquery 从 azure blob 上传和检索图像
C#.NET Web API 2,如何使用 HTTPGET 异步方法上的 HttpContent 从网站中提取特定文本?