Php 上传相机预览android

Php 上传相机预览android,php,android,Php,Android,我尝试在SurfaceView中显示相机预览,并将预览上传到我的网站。有点像无线网络摄像头。预览显示在surfaceView fine中,但它似乎无法上载到我的网站,我的网站中没有收到任何内容。这是我的android代码 public class MainActivity extends AppCompatActivity { SurfaceView surfaceView; SurfaceHolder holder; private Camera camera; String MyI

我尝试在SurfaceView中显示相机预览,并将预览上传到我的网站。有点像无线网络摄像头。预览显示在surfaceView fine中,但它似乎无法上载到我的网站,我的网站中没有收到任何内容。这是我的android代码

 public class MainActivity extends AppCompatActivity {
 SurfaceView surfaceView;
 SurfaceHolder holder;
 private Camera camera;
 String MyImage;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    surfaceView = (SurfaceView) findViewById(R.id.surfaceView);
    holder = surfaceView.getHolder();

    holder.addCallback(new SurfaceHolder.Callback() {
        @Override
        public void surfaceCreated(SurfaceHolder holder) {
            camera = Camera.open();
        }

        @Override
        public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
            try
            {
                camera.setPreviewDisplay(holder);
                camera.startPreview();
                camera.setDisplayOrientation(90);
                camera.setPreviewCallback(new Camera.PreviewCallback()
                {
                    public void onPreviewFrame(final byte[] data, final Camera camera)
                    {
                        MyImage = Base64.encodeToString(data, Base64.DEFAULT);
                        final ArrayList<NameValuePair> nameValuePairs = new  ArrayList<NameValuePair>();
                        nameValuePairs.add(new BasicNameValuePair("image",MyImage));
                        Thread t = new Thread(new Runnable() {
                            @Override
                            public void run() {
                                try{
                                    HttpClient httpclient = new DefaultHttpClient();
                                    HttpPost httppost = new HttpPost("http://nns12151069.esy.es/upload_image.php");
                                    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                                    HttpResponse response = httpclient.execute(httppost);
                                }catch(Exception e){e.printStackTrace();}
                            }
                        });
                        t.start();
                    }
                });
            }
             catch (IOException e) {e.printStackTrace();}
        }

        @Override
        public void surfaceDestroyed(SurfaceHolder holder) {
            camera.stopPreview();
            camera.release();
            camera = null;
        }
    });
}
}
public类MainActivity扩展了AppCompatActivity{
表面视图表面视图;
表面焊钳;
私人摄像机;
字符串MyImage;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
surfaceView=(surfaceView)findViewById(R.id.surfaceView);
holder=surfaceView.getHolder();
holder.addCallback(新的SurfaceHolder.Callback(){
@凌驾
已创建的公共空白表面(表面持有人){
camera=camera.open();
}
@凌驾
公共空白表面更改(表面文件夹持有者、整型格式、整型宽度、整型高度){
尝试
{
摄像头。设置预览显示(支架);
camera.startPreview();
摄像头。设置显示方向(90);
camera.setPreviewCallback(新的camera.PreviewCallback()
{
预览帧上的公共无效(最终字节[]数据,最终摄影机)
{
MyImage=Base64.encodeToString(数据,Base64.DEFAULT);
最终ArrayList nameValuePairs=新ArrayList();
添加(新的BasicNameValuePair(“image”,MyImage));
线程t=新线程(新的可运行线程(){
@凌驾
公开募捐{
试一试{
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“http://nns12151069.esy.es/upload_image.php");
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
HttpResponse response=httpclient.execute(httppost);
}catch(异常e){e.printStackTrace();}
}
});
t、 start();
}
});
}
catch(IOE异常){e.printStackTrace();}
}
@凌驾
公共空间表面覆盖(表面覆盖物持有人){
camera.stopPreview();
相机。释放();
摄像机=零;
}
});
}
}
和.php文件,在网站中接收预览

 <?php
 $base=$_REQUEST['image'];
 $binary=base64_decode($base);
 header('Content-Type: bitmap; charset=utf-8');
 $file = fopen('uploaded_image.jpg', 'wb');
 fwrite($file, $binary);
 fclose($file);


 $path = "publib_html/"; 
 $tmp_name = $_FILES['file']['tmp_name'];
 $name = $_FILES['file']['name'];
 $type = $_FILES['file']['type']; 
 $size = $_FILES['file']['size']; 

 move_uploaded_file($tmp_name,$path.$name);
 ?>

预览图像通常不是JPEG图像,您的服务器代码似乎表明您认为它们是JPEG图像。实际格式基于您提供的内容,并且必须是来自的值之一。最有可能的结果是
NV21
YV12