Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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/1/php/258.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
Java Android使用PHP将视频上传到服务器。错误:向活动传递结果失败_Java_Php_Android_Video - Fatal编程技术网

Java Android使用PHP将视频上传到服务器。错误:向活动传递结果失败

Java Android使用PHP将视频上传到服务器。错误:向活动传递结果失败,java,php,android,video,Java,Php,Android,Video,我是初学者。我想上传视频到服务器。一个简单的例子: 我试图在我的项目中使用以下内容: uploadvideo.php <?php if($_SERVER['REQUEST_METHOD']=='POST'){ $file_name = $_FILES['myFile']['name']; $file_size = $_FILES['myFile']['size']; $file_type = $_FILES['myFile']['t

我是初学者。我想上传视频到服务器。一个简单的例子:

我试图在我的项目中使用以下内容:

uploadvideo.php

        <?php

     if($_SERVER['REQUEST_METHOD']=='POST'){
     $file_name = $_FILES['myFile']['name'];
     $file_size = $_FILES['myFile']['size'];
     $file_type = $_FILES['myFile']['type'];
     $temp_name = $_FILES['myFile']['tmp_name'];

     $location = "http://localhost/android/upload/";

     move_uploaded_file($temp_name, $location.$file_name);
     echo "http://localhost/android/upload/".$file_name;
     }else{
     echo "Error";
     }
     ?>
sendvideo.java

    public class Sendvideo extends Fragment  {

    private static final int SELECT_VIDEO = 2;
    String selectedPath = "";

    private static final String REGISTER_URL = "http://10.0.3.2:90/android/uploadimage.php";

    public static final String KEY_NAME= "TEN";
    public static final String KEY_IMAGE= "HINH";

    LinearLayout ll;
    EditText et_sendvideotitle;

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        ll = (LinearLayout) inflater.inflate(R.layout.sendvideo, container, false);

        Button btn_choosevideo = (Button)ll.findViewById(R.id.btn_choosevideo);
        Button btn_sendvideo = (Button)ll.findViewById(R.id.btn_sendvideo);
        et_sendvideotitle = (EditText) ll.findViewById(R.id.et_sendvideotitle);
        EditText et_sendvideodesc = (EditText) ll.findViewById(R.id.et_sendvideodesc);

            btn_choosevideo.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    openGalleryVideo();
                }
            });

        btn_sendvideo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                uploadVideo();
            }
        });


        return ll;
    }

    // *********************************************************************************

    public void openGalleryVideo(){

        Intent intent = new Intent();
        intent.setType("video/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(intent,"select vid"), SELECT_VIDEO);
    }

    public void onActivityResult(int requestCode, int resultCode, Intent data) {

        if (requestCode == SELECT_VIDEO && resultCode == Activity.RESULT_OK && data!=null) {
                System.out.println("SELECT_VIDEO");
                Log.i("data.getDataString() ",data.getDataString());
                Uri selectedfile = data.getData();
                selectedPath = getPath(selectedfile);
                System.out.println("SELECT_VIDEO Path : " + selectedPath);

        }
    }


    public String getPath(Uri uri) {
        Cursor cursor = getActivity().getContentResolver().query(uri, null, null, null, null);
        Log.i("cursor.toString() ",cursor.toString());

        cursor.moveToFirst();
        String document_id = cursor.getString(0);
        document_id = document_id.substring(document_id.lastIndexOf(":") + 1);
        cursor.close();

        cursor = getActivity().getContentResolver().query(
                android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
                null, MediaStore.Images.Media._ID + " = ? ", new String[]{document_id}, null);
        cursor.moveToFirst();
        String path = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA));
        cursor.close();

        return path;
    }


    private void uploadVideo() {
        class UploadVideo extends AsyncTask<Void, Void, String> {

            ProgressDialog uploading;

            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                uploading = ProgressDialog.show(getActivity(), "up", "...", false, false);
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                uploading.dismiss();
                et_sendvideotitle.setText(Html.fromHtml("Uploaded at <a href='" + s + "'>" + s + "</a>"));
                et_sendvideotitle.setMovementMethod(LinkMovementMethod.getInstance());
            }

            @Override
            protected String doInBackground(Void... params) {
                Upload u = new Upload();
                String msg = u.uploadVideo(selectedPath);
                return msg;
            }
        }
        UploadVideo uv = new UploadVideo();
        uv.execute();
    }


}
公共类Sendvideo扩展片段{
私有静态最终整数选择_视频=2;
字符串selectedPath=“”;
专用静态最终字符串寄存器\u URL=”http://10.0.3.2:90/android/uploadimage.php";
公共静态最终字符串键\u NAME=“十”;
公共静态最终字符串键\u IMAGE=“HINH”;
线性布局;
编辑文本和视频标题;
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
ll=(线性布局)充气器。充气(R.layout.sendvideo,容器,假);
按钮btn\u choosevideo=(按钮)ll.findViewById(R.id.btn\u choosevideo);
按钮btn_sendvideo=(按钮)ll.findViewById(R.id.btn_sendvideo);
et_sendvideotitle=(EditText)ll.findViewById(R.id.et_sendvideotitle);
EditText et_sendvideodesc=(EditText)ll.findViewById(R.id.et_sendvideodesc);
btn_choosevideo.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
openGalleryVideo();
}
});
btn_sendvideo.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
上传视频();
}
});
返回ll;
}
// *********************************************************************************
公开作废openGalleryVideo(){
意图=新意图();
intent.setType(“video/*”);
intent.setAction(intent.ACTION\u GET\u CONTENT);
startActivityForResult(Intent.createChooser(Intent,“选择视频”),选择视频);
}
ActivityResult上的公共void(int请求代码、int结果代码、意图数据){
if(requestCode==SELECT_VIDEO&&resultCode==Activity.RESULT_OK&&data!=null){
System.out.println(“选择视频”);
Log.i(“data.getDataString()”,data.getDataString());
Uri selectedfile=data.getData();
selectedPath=getPath(selectedfile);
System.out.println(“选择视频路径:+selectedPath”);
}
}
公共字符串getPath(Uri){
Cursor Cursor=getActivity().getContentResolver().query(uri,null,null,null);
Log.i(“cursor.toString()”,cursor.toString());
cursor.moveToFirst();
String document_id=cursor.getString(0);
document_id=document_id.子字符串(document_id.lastIndexOf(“:”)+1);
cursor.close();
游标=getActivity().getContentResolver().query(
android.provider.MediaStore.Video.Media.EXTERNAL\u CONTENT\u URI,
null,MediaStore.Images.Media.\u ID+“=?”,新字符串[]{document\u ID},null);
cursor.moveToFirst();
字符串路径=cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA));
cursor.close();
返回路径;
}
私有void上传视频(){
类UploadVideo扩展异步任务{
进程对话框上传;
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
Upload=ProgressDialog.show(getActivity(),“up”,“…”,false,false);
}
@凌驾
受保护的void onPostExecute(字符串s){
super.onPostExecute(s);
上传。驳回();
et_sendvideotitle.setText(Html.fromHtml(“上传地址”);
et_sendvideotitle.setMovementMethod(LinkMovementMethod.getInstance());
}
@凌驾
受保护字符串doInBackground(无效…参数){
Upload u=新上传();
字符串msg=u.上传视频(selectedPath);
返回味精;
}
}
UploadVideo uv=新的UploadVideo();
uv.execute();
}
}
错误:

致命异常:主 java.lang.RuntimeException:未能传递结果ResultInfo{who=null,request=65538,result=-1,data=Intent{dat=file:///mnt/sdcard/Download/titraj_176034.mp4 }}到活动{xx.xxx.xxxx.xxxxxx/xx.xxx.xxxx.xxxxx.Drawer}:java.lang.NullPointerException

在线:Cursor Cursor=getContext().getContentResolver().query(uri,null,null,null); Log.i(“cursor.toString()”,cursor.toString())


请帮帮我

因此,当您使用一个为null的变量时,会出现一个NullPointerException。哪个变量是空的?我通过小视频(小于5MB)和一些扩展(如.3gp.mp4等)对它进行了测试。但是没有成功!传递结果失败,游标为空。如果您无法详细说明发生了什么,我们如何帮助您?请解释您需要光标的原因。在运行中,当我单击btn_choosevideo并在Emulator的下载目录中选择一个视频后,它会停止。在清单中:
它会停止。
。这还不够。更多地解释发生了什么和没有发生什么。你没有回答我的问题。很奇怪。
    public class Sendvideo extends Fragment  {

    private static final int SELECT_VIDEO = 2;
    String selectedPath = "";

    private static final String REGISTER_URL = "http://10.0.3.2:90/android/uploadimage.php";

    public static final String KEY_NAME= "TEN";
    public static final String KEY_IMAGE= "HINH";

    LinearLayout ll;
    EditText et_sendvideotitle;

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        ll = (LinearLayout) inflater.inflate(R.layout.sendvideo, container, false);

        Button btn_choosevideo = (Button)ll.findViewById(R.id.btn_choosevideo);
        Button btn_sendvideo = (Button)ll.findViewById(R.id.btn_sendvideo);
        et_sendvideotitle = (EditText) ll.findViewById(R.id.et_sendvideotitle);
        EditText et_sendvideodesc = (EditText) ll.findViewById(R.id.et_sendvideodesc);

            btn_choosevideo.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    openGalleryVideo();
                }
            });

        btn_sendvideo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                uploadVideo();
            }
        });


        return ll;
    }

    // *********************************************************************************

    public void openGalleryVideo(){

        Intent intent = new Intent();
        intent.setType("video/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(intent,"select vid"), SELECT_VIDEO);
    }

    public void onActivityResult(int requestCode, int resultCode, Intent data) {

        if (requestCode == SELECT_VIDEO && resultCode == Activity.RESULT_OK && data!=null) {
                System.out.println("SELECT_VIDEO");
                Log.i("data.getDataString() ",data.getDataString());
                Uri selectedfile = data.getData();
                selectedPath = getPath(selectedfile);
                System.out.println("SELECT_VIDEO Path : " + selectedPath);

        }
    }


    public String getPath(Uri uri) {
        Cursor cursor = getActivity().getContentResolver().query(uri, null, null, null, null);
        Log.i("cursor.toString() ",cursor.toString());

        cursor.moveToFirst();
        String document_id = cursor.getString(0);
        document_id = document_id.substring(document_id.lastIndexOf(":") + 1);
        cursor.close();

        cursor = getActivity().getContentResolver().query(
                android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
                null, MediaStore.Images.Media._ID + " = ? ", new String[]{document_id}, null);
        cursor.moveToFirst();
        String path = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA));
        cursor.close();

        return path;
    }


    private void uploadVideo() {
        class UploadVideo extends AsyncTask<Void, Void, String> {

            ProgressDialog uploading;

            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                uploading = ProgressDialog.show(getActivity(), "up", "...", false, false);
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                uploading.dismiss();
                et_sendvideotitle.setText(Html.fromHtml("Uploaded at <a href='" + s + "'>" + s + "</a>"));
                et_sendvideotitle.setMovementMethod(LinkMovementMethod.getInstance());
            }

            @Override
            protected String doInBackground(Void... params) {
                Upload u = new Upload();
                String msg = u.uploadVideo(selectedPath);
                return msg;
            }
        }
        UploadVideo uv = new UploadVideo();
        uv.execute();
    }


}