gpt4 book ai didi

android - 将图片或图像发送到 php 服务器

转载 作者:可可西里 更新时间:2023-11-01 16:39:18 24 4
gpt4 key购买 nike

我需要知道加载位图并将其作为字符串通过 http 发送的最佳方式,因为我想将其存储在数据库中。那么你能帮我出出主意吗?

提前致谢,问候

我有这样的东西:

public byte[] ConvertBitmaptoBits(Bitmap src) 
{
try{
ByteArrayOutputStream os=new ByteArrayOutputStream();
src.compress( android.graphics.Bitmap.CompressFormat.PNG, 100, (OutputStream)os );

src.compress(Bitmap.CompressFormat.PNG, 100, os); //bm is the bitmap object
byte[] b = os.toByteArray();
return b;
}catch(Throwable e)
{
//Toast.makeText(this, "Error en ConvierteBitmapAString: " + e.getMessage(), 30);
Log.v("ConvierteBitmapACadena", "Error al Convertir la imagen a Cadena: " + e.getMessage());
return null;
}
}

在我的 SEND 方法中我有这样的东西:

public void Send() //throws Exception
{
try
{
InputStreamBody isb=null;
StringBody sImageString=null;

Resources r = this.getResources();
Bitmap bmp = BitmapFactory.decodeResource(r, R.drawable.icon);
byte[] objImageBits = ConvertBitmaptoBits(bmp);


if(objImageBits !=null ){
isb = new InputStreamBody(new ByteArrayInputStream(objImageBits), "uploadedFile");
}

HttpClient httpClient = new DefaultHttpClient();

HttpPost postRequest = new HttpPost(strPath);

SimpleDateFormat sdfDateTime = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
String strCurDate = sdfDateTime.format(new Date(System.currentTimeMillis()));


StringBody sCurDate = new StringBody(strCurDate);

MultipartEntity multipartContent = new MultipartEntity();
if(objImageBits !=null)
{
multipartContent.addPart("uploadedFile", isb);
}
multipartContent.addPart("fechaequipo", sCurDate);
postRequest.setEntity(multipartContent);


HttpResponse response = httpClient.execute(postRequest);
response.getEntity().getContent().close();
}
catch (Throwable e)
{
Log.v("executeMultipartPost", "Error in executeMultipartPost: " + e.getMessage());
}
}

但我似乎没有收到上传的文件。这是我的 PHP 脚本:

$file2           = (isset($_POST['uploadedFile'])) ? ( $_POST['uploadedFile'] ):('');

$fechaequipo = (isset($_POST['fechaequipo']) ) ? ( $_POST['fechaequipo'] ):('');

$fp = null;
$log_file = 'log.txt';

if (!$fp)
$fp = fopen($log_file, 'a') or exit("No se puede abrir: $log_file!");

fwrite($fp, "<INI LOG>" . date("d/m/Y") ."\n\r");

fwrite($fp, "Date : ". $fechaequipo . "\n\r");

fwrite($fp, "File2 : " . $file2 . "\n\r");

fwrite($fp, "<END LOG>" . date("d/m/Y") ."\n\r");
fclose($fp);

?>

我做错了什么吗?提前致谢!!!

最佳答案

一个类似的问题(在某种意义上)是here .

您将图像转换为 base64,然后按照您喜欢的方式发送到服务器。服务器然后可以将字符串解码为图像。 (对于 PHP,就是 base64-decode )。

请记住,base64 编码会增加 about 33% 传输的数据大小.

关于android - 将图片或图像发送到 php 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7438156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com