如何使用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上发布文件和某些参数的代码。那为什么你找不到呢?原则上,每个参数及其值必须在两条边界线之间发送。我喜欢这个文件。所以谷歌。