Java 从android上传文件在emulator中工作,但在实际手机中不工作

Java 从android上传文件在emulator中工作,但在实际手机中不工作,java,php,android,Java,Php,Android,我正在尝试将用户数据(例如:姓名、电话、电子邮件)和文件附件从android传递到php服务器,数据将保存在mysql中。当我使用emulator运行时,数据被成功插入(使用multipartEntity),但是使用实际的电话,它给出了错误,就好像没有说明参数一样 在nextractivity.java中: private class RegisterPSJobActivity extends AsyncTask<String, Void, String> { //

我正在尝试将用户数据(例如:姓名、电话、电子邮件)和文件附件从android传递到php服务器,数据将保存在mysql中。当我使用emulator运行时,数据被成功插入(使用multipartEntity),但是使用实际的电话,它给出了错误,就好像没有说明参数一样

在nextractivity.java中:

private class RegisterPSJobActivity extends AsyncTask<String, Void, String> {
        // private void registerPSJob(){

        @SuppressLint("SimpleDateFormat")
        @Override
        protected String doInBackground(String... arg0) {
            String svcCtr = spinnerSvc.getSelectedItem().toString();
            String product = spinnerProduct.getSelectedItem().toString();
            String name = (String) arg0[0];
            String phone = (String) arg0[1];
            String email = (String) arg0[2];
            String imei = (String) arg0[3];
            String username = (String) arg0[4];

            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = new Date();
            String dateNow = dateFormat.format(date);

            try {
                HttpClient httpclient = new DefaultHttpClient();
                /*
                 * HttpPost httppost = new HttpPost(
                 * "http://192.168.43.140/ps/sendJobs.php");
                 */
                HttpPost httppost = new HttpPost(
                        URL + "sendJobs.php");

                MultipartEntity mEntity = new MultipartEntity(
                        HttpMultipartMode.BROWSER_COMPATIBLE,null,Charset.forName("UTF-8"));
                mEntity.addPart("dealer", new StringBody(dealer));
                mEntity.addPart("svcCtr", new StringBody(svcCtr));
                mEntity.addPart("product", new StringBody(product));
                mEntity.addPart("name", new StringBody(name));
                mEntity.addPart("phone", new StringBody(phone));
                mEntity.addPart("email", new StringBody(email));
                mEntity.addPart("imei", new StringBody(imei));
                mEntity.addPart("date", new StringBody(dateNow));
                mEntity.addPart("createdBy", new StringBody(username));
                mEntity.addPart("timeUpdated", new StringBody(dateNow));

                // Thread.sleep(1000);
                //System.out.println(fileUri.getPath());
                mEntity.addPart("attach1", new FileBody(new File(fileUri.getPath()), "application/octet-stream","UTF-8"));
                mEntity.addPart("attach2",new FileBody(new File(fileUriPOD.getPath()), "application/octet-stream","UTF-8"));

                httppost.setEntity(mEntity);
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                is = entity.getContent();

                Log.e("pass 1", "connection success ");
            } catch (Exception ex) {
                Log.e("Fail 1", ex.toString());
                Toast.makeText(getApplicationContext(), "Invalid IP Address",
                        Toast.LENGTH_LONG).show();
            }

            try {


                BufferedReader reader = new BufferedReader(
                        new InputStreamReader(is));
                String line = null;
                StringBuilder sb = new StringBuilder();
                while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");

                }
                reader.close();
                is.close();

                result = sb.toString();
                Log.e("pass 2", "connection success ");
            } catch (Exception ex1) {
                Log.e("Fail 2", ex1.toString());
            }

            try {
                Log.i("Info", result);
                JSONObject json_data = new JSONObject(result);
                code = (json_data.getInt("code"));
            } catch (Exception e) {
                Log.e("Fail 3", e.toString());
            }
            return Integer.toString(code);
        }
private class registerSjobActivity扩展异步任务{
//私有无效注册表rsjob(){
@SuppressLint(“SimpleDataFormat”)
@凌驾
受保护的字符串doInBackground(字符串…arg0){
字符串svcCtr=spinnerSvc.getSelectedItem().toString();
字符串产品=spinnerProduct.getSelectedItem().toString();
字符串名称=(字符串)arg0[0];
字符串phone=(字符串)arg0[1];
字符串email=(字符串)arg0[2];
字符串imei=(字符串)arg0[3];
字符串用户名=(字符串)arg0[4];
DateFormat DateFormat=新的简化格式(“yyyy-MM-dd HH:MM:ss”);
日期=新日期();
字符串dateNow=dateFormat.format(日期);
试一试{
HttpClient HttpClient=新的DefaultHttpClient();
/*
*HttpPost HttpPost=新的HttpPost(
* "http://192.168.43.140/ps/sendJobs.php");
*/
HttpPost HttpPost=新的HttpPost(
URL+“sendJobs.php”);
多方当事人资格=新多方当事人资格(
HttpMultipartMode.BROWSER_兼容,null,Charset.forName(“UTF-8”);
添加部件(“经销商”,新纵梁车身(经销商));
添加部件(“svcCtr”,新的StringBody(svcCtr));
添加部件(“产品”,新的StringBody(产品));
mEntity.addPart(“名称”,新的StringBody(名称));
添加部件(“电话”,新的StringBody(电话));
添加部分(“电子邮件”,新的StringBody(电子邮件));
添加部分(“imei”,新的字符串体(imei));
添加部分(“日期”,新的StringBody(dateNow));
addPart(“createdBy”,新的StringBody(用户名));
addPart(“timeUpdated”,新的StringBody(dateNow));
//睡眠(1000);
//System.out.println(fileUri.getPath());
addPart(“attach1”,新文件体(新文件(fileUri.getPath()),“应用程序/八位字节流”,“UTF-8”);
mEntity.addPart(“attach2”、新文件体(新文件(fileUriPOD.getPath())、“应用程序/八位字节流”、“UTF-8”);
httppost.setEntity(mEntity);
HttpResponse response=httpclient.execute(httppost);
HttpEntity=response.getEntity();
is=entity.getContent();
Log.e(“通过1”,“连接成功”);
}捕获(例外情况除外){
Log.e(“失败1”,例如toString());
Toast.makeText(getApplicationContext(),“无效IP地址”,
Toast.LENGTH_LONG).show();
}
试一试{
BufferedReader reader=新的BufferedReader(
新的InputStreamReader(is));
字符串行=null;
StringBuilder sb=新的StringBuilder();
而((line=reader.readLine())!=null){
sb.追加(第+行“\n”);
}
reader.close();
is.close();
结果=sb.toString();
Log.e(“通过2”,“连接成功”);
}捕获(异常ex1){
Log.e(“Fail 2”,ex1.toString());
}
试一试{
Log.i(“信息”,结果);
JSONObject json_data=新的JSONObject(结果);
code=(json_data.getInt(“code”);
}捕获(例外e){
Log.e(“Fail 3”,e.toString());
}
返回整数.toString(代码);
}
SendJobs.php:

<?php
$con=mysqli_connect("localhost","root","","psapp");
if (mysqli_connect_errno($con))
{
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$imei = $_POST['imei'];
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];

$target_path = "upload/";
$target_path2 = "upload/";
$copy_path = "D:/apache-tomcat-7.0.57/webapps/PS/upload/";
$server_ip = gethostbyname(gethostname());
$file_upload_url = 'http://' . $server_ip . '/' . 'ps' . '/' . $target_path;

if (isset($_FILES['attach1']['name']) && isset($_FILES['attach2']['name'])) {
    $target_path = $target_path . basename($_FILES['attach1']['name']);
    $target_path2 = $target_path2 . basename($_FILES['attach2']['name']);
}

if (!move_uploaded_file($_FILES['attach1']['tmp_name'], $target_path)) {
    // make error flag true
    echo true;
    echo 'Could not move the file!';
}
if (!move_uploaded_file($_FILES['attach2']['tmp_name'], $target_path2)) {
    // make error flag true
    echo true;
    echo 'Could not move the file!';
}
copy('C:/wamp/www/ps/upload/'.$_FILES['attach1']['name'],$copy_path.$_FILES['attach1']['name']);
copy('C:/wamp/www/ps/upload/'.$_FILES['attach2']['name'],$copy_path.$_FILES['attach2']['name']);

$attach1 = $_FILES['attach1']['name'];
$attach2 = $_FILES['attach2']['name'];

$dateNow = $_POST['date'];
$timeUpdated = $_POST['timeUpdated'];
$createdBy = $_POST['createdBy'];
$dealerLocation = $_POST['dealer'];
$sc = $_POST['svcCtr'];
$product = $_POST['product'];
$randomNo = rand();

$flag['code']=0;
header("Content-type: image/jpeg");
if($result = mysqli_query($con,"INSERT INTO PSJOB (DEALERLOCATION, SERVICEORDER, SERVICECENTER, PRODUCT, IMEINO, NAME, PHONE, EMAIL, ATTACHMENT1, ATTACHMENT2, REGISTRATIONDATETIME, CREATEDBY, TIMEUPDATED, STATUS) 
VALUES('$dealerLocation', '$randomNo', '$sc', '$product', '$imei', '$name', '$phone', '$email', '$attach1', '$attach2', '$dateNow', '$createdBy', '$timeUpdated', 'REGISTRATION')")){
    $flag['code']=1;
    #echo"hi";
}

print(json_encode($flag));
mysqli_close($con);

当我在真实设备上测试我的应用程序时,我不能使用wamp服务器localhost,文件夹C:/wamp/www/ps/upload/,D:/apache-tomcat-7.0.57/webapps/ps/upload/etc真实设备看不到这些资源。我删除了两行副本,但仍然显示以下消息:(!)注意:未定义的索引:C:\wamp\www\ps\sendJobs.php中的imei在第8行(!)注意:C:\wamp\www\ps\sendJobs.php中未定义的index:name在第9行我看到了这篇文章:我的代码中尝试使用了它,它工作了。