Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-使用HttpURLConnection和PHP将Base64字符串发送到mysql服务器_Php_Android_Sql_Bitmap_Base64 - Fatal编程技术网

Android-使用HttpURLConnection和PHP将Base64字符串发送到mysql服务器

Android-使用HttpURLConnection和PHP将Base64字符串发送到mysql服务器,php,android,sql,bitmap,base64,Php,Android,Sql,Bitmap,Base64,尝试通过HttpURLConnection将Base64编码的位图发送到PHP脚本上的POST变量时遇到问题 它显示toast“上载成功”,但我的数据库未填充 我首先将位图变量转换为Base64,其中bSignature是位图,sSignature是字符串 sSignature = encodeToBase64(bSignature, Bitmap.CompressFormat.JPEG,100); 以下是我的任务代码: class BackgroundTaskSig extends Asyn

尝试通过HttpURLConnection将Base64编码的位图发送到PHP脚本上的POST变量时遇到问题

它显示toast“上载成功”,但我的数据库未填充

我首先将位图变量转换为Base64,其中bSignature是位图,sSignature是字符串

sSignature = encodeToBase64(bSignature, Bitmap.CompressFormat.JPEG,100);
以下是我的任务代码:

class BackgroundTaskSig extends AsyncTask<String,Void,String> {
    String json_signature_url;

    @Override
    protected void onPreExecute() {
        json_signature_url = "http://abhandyman.x10host.com/upload_signature.php";
    }

    @Override
    protected String doInBackground(String... args) {
        sSignature = args[0];
        try {
            URL url = new URL(json_signature_url);
            HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
            httpURLConnection.setRequestMethod("POST");
            httpURLConnection.setDoInput(true);
            OutputStream outputStream = httpURLConnection.getOutputStream();
            BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream,"UTF-8"));
            String data_string = URLEncoder.encode("image","UTF-8")+"="+URLEncoder.encode(sSignature,"UTF-8");
            bufferedWriter.write(data_string);
            bufferedWriter.flush();
            bufferedWriter.close();
            outputStream.close();
            InputStream inputStream = httpURLConnection.getInputStream();
            inputStream.close();
            httpURLConnection.disconnect();
            return "Upload Successful";

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onProgressUpdate(Void... values) {
        super.onProgressUpdate(values);
    }

    @Override
    protected void onPostExecute(String result) {
        Toast.makeText(getApplicationContext(),result,Toast.LENGTH_LONG).show();
    }
}
class BackgroundTaskSig扩展了AsyncTask{
字符串json_签名_url;
@凌驾
受保护的void onPreExecute(){
json_签名_url=”http://abhandyman.x10host.com/upload_signature.php";
}
@凌驾
受保护的字符串doInBackground(字符串…args){
sSignature=args[0];
试一试{
URL URL=新URL(json\u签名\u URL);
HttpURLConnection HttpURLConnection=(HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod(“POST”);
httpURLConnection.setDoInput(true);
OutputStream OutputStream=httpURLConnection.getOutputStream();
BufferedWriter BufferedWriter=新的BufferedWriter(新的OutputStreamWriter(outputStream,UTF-8));
字符串数据\u String=urlcoder.encode(“图像”,“UTF-8”)+“=”+urlcoder.encode(sSignature,“UTF-8”);
bufferedWriter.write(数据字符串);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream InputStream=httpURLConnection.getInputStream();
inputStream.close();
httpURLConnection.disconnect();
返回“上传成功”;
}捕获(格式错误){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
@凌驾
受保护的void onProgressUpdate(void…值){
super.onProgressUpdate(值);
}
@凌驾
受保护的void onPostExecute(字符串结果){
Toast.makeText(getApplicationContext(),result,Toast.LENGTH_LONG.show();
}
}
这是我的PHP脚本,其中结构签名列设置为“blob”

<?php
require "init_signature.php";

$job_id = "1";
$image = $_POST['image'];
$image = base64_decode($image);

$sql_query = "UPDATE signature SET signature='$image' WHERE id='$job_id'";

if (mysqli_query($con,$sql_query)){
    echo "Image uploaded successfully";
}else{
    echo "Error in insertion " . mysqli_error($con);
}

?>

除非您在其他地方自动提交,否则插入时不会提交。
它会显示toast“Upload Successful”
您最好从该输入流中读取,以查看脚本返回的内容。现在您忽略了回送。您不能使用普通SQL发送二进制数据。这可能解决了一个类似的问题:我将代码更改为now,并显示脚本中的inputstream-它显示以下错误消息:
解析错误:语法错误意外$sql\u查询(T\u变量)在第8行
除非您在其他地方自动提交,否则插入时没有提交。
它显示toast“上传成功“
您最好从该输入流中读取,以查看脚本返回的内容。现在您忽略了回送。您不能使用普通SQL发送二进制数据。这可能解决了一个类似的问题:我已将代码更改为now并显示脚本中的inputstream-它显示以下错误消息:
Parse error:syntax error unexpected$sql\u query(T\u变量)在第8行