如何使用Android Multipart在PHP服务器中接收额外的$u POST数据

如何使用Android Multipart在PHP服务器中接收额外的$u POST数据,php,android,post,multipart,Php,Android,Post,Multipart,大约一周来,我一直在努力尝试不同的方法来上传我的音频文件和用户数据,以便确定要保存在数据库中的内容。 文件已成功上载,但我无法获取用户名。 @user5155835也有同样的问题,显然是由他解决的,但我无法让它工作。 拜托,我需要一些帮助。我已经把这段代码弄糟了,并使用了其他不同的方法,但我永远看不到POST变量。在我的挣扎中,我又回到了这段代码,更不用说我正在处理多个asyncTask进程,在gradle中编译库是一场噩梦 在Android中 FileInputStream fileInput

大约一周来,我一直在努力尝试不同的方法来上传我的音频文件和用户数据,以便确定要保存在数据库中的内容。
文件已成功上载,但我无法获取用户名。
@user5155835也有同样的问题,显然是由他解决的,但我无法让它工作。
拜托,我需要一些帮助。我已经把这段代码弄糟了,并使用了其他不同的方法,但我永远看不到POST变量。
在我的挣扎中,我又回到了这段代码,更不用说我正在处理多个asyncTask进程,在gradle中编译库是一场噩梦

在Android中

FileInputStream fileInputStream = new FileInputStream(new File(existingFileName));
                // open a URL connection to the Servlet
                URL url = new URL(urlString);
                // Open a HTTP connection to the URL
                conn = (HttpURLConnection) url.openConnection();
                // Allow Inputs
                conn.setDoInput(true);
                // Allow Outputs
                conn.setDoOutput(true);
                // Don't use a cached copy.
                conn.setUseCaches(false);
                // Use a post method.
                conn.setRequestMethod("POST");
                conn.setRequestProperty("Connection", "Keep-Alive");
                conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
                dos = new DataOutputStream(conn.getOutputStream());
                dos.writeBytes(twoHyphens + boundary + lineEnd);
                dos.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + existingFileName + "\"" + lineEnd);
                dos.writeBytes(lineEnd);
                // create a buffer of maximum size
                bytesAvailable = fileInputStream.available();
                bufferSize = Math.min(bytesAvailable, maxBufferSize);
                buffer = new byte[bufferSize];
                // read file and write it into form...
                bytesRead = fileInputStream.read(buffer, 0, bufferSize);

                while (bytesRead > 0) {

                    dos.write(buffer, 0, bufferSize);
                    bytesAvailable = fileInputStream.available();
                    bufferSize = Math.min(bytesAvailable, maxBufferSize);
                    bytesRead = fileInputStream.read(buffer, 0, bufferSize);

                }
                // send multipart form data necesssary after file data...
                dos.writeBytes(lineEnd);
                dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);


                dos.writeBytes("Content-Disposition: form-data; name=\"user\"" +params[0] +"\""+lineEnd);

                dos.writeBytes(lineEnd);
                dos.writeBytes(twoHyphens + boundary + lineEnd);


                // close streams
                Log.e("Debug", "File is written");
                fileInputStream.close();
                dos.flush();
                dos.close();
在服务器中

$email = $_POST['user'];
echo "email is ".$email;

    $strSQL = "SELECT * FROM member WHERE email = '".$email."' ";
    $objQuery = mysql_query($strSQL);
    $objResult = mysql_fetch_array($objQuery);
    if($objResult)
    {
       //upload file
    }
从服务器

E/Debug: File is written
E/Debug: Server Response email is 

我有一个小建议给你。如果您没有太多需要发布到服务器的数据,那么您可以做的是。将数据作为get参数传递,将文件作为post参数传递。因此,您可以从$\u get[“user”]获取用户和其他数据

例如,如果您的url为:

那你应该把它做成这样


这不是一个很好的解决方案,但目前它对您有效

我有一个小建议给你。如果您没有太多需要发布到服务器的数据,那么您可以做的是。将数据作为get参数传递,将文件作为post参数传递。因此,您可以从$\u get[“user”]获取用户和其他数据

例如,如果您的url为:

那你应该把它做成这样


这不是一个很好的解决方案,但目前它对您有效

这篇文章并不是在试图回答这个问题。请注意,这是一个问答网站,每个帖子都是一个问题或问题的答案。帖子也可以有这样的小句子,可以用来批评或要求作者澄清。这应该是一个评论或者一个评论。这篇文章并不是在试图回答这个问题。请注意,这是一个问答网站,每个帖子都是一个问题或问题的答案。帖子也可以有这样的小句子,可以用来批评或要求作者澄清。这应该是一个评论或者一个评论。这篇文章并不是在试图回答这个问题。请注意,这是一个问答网站,每个帖子都是一个问题或问题的答案。帖子也可以有这样的小句子,可以用来批评或要求作者澄清。这应该是一个评论或者一个评论。这篇文章并不是在试图回答这个问题。请注意,这是一个问答网站,每个帖子都是一个问题或问题的答案。帖子也可以有这样的小句子,可以用来批评或要求作者澄清。这应该是一个评论或一个评论。很奇怪,你有问题。用于在stackoverflow上发布文件和某些参数的代码。那为什么你找不到呢?原则上,每个参数及其值必须在两条边界线之间发送。我喜欢这个文件。所以谷歌。很奇怪你有问题。用于在stackoverflow上发布文件和某些参数的代码。那为什么你找不到呢?原则上,每个参数及其值必须在两条边界线之间发送。我喜欢这个文件。所以谷歌。