J'ai lutté pendant environ une semaine en essayant différentes façons de télécharger mon fichier audio avec les données utilisateur afin que je puisse déterminer ce qu'il faut enregistrer dans la base de données.
Le fichier a été transféré avec succès mais je ne peux pas obtenir le nom d'utilisateur.
@ user5155835 here avait le même problème et apparemment a été résolu par lui, mais je ne peux pas le faire fonctionner.
S'il vous plaît j'ai besoin d'aide avec ceci. J'ai détruit ce code et utilisé différentes autres approches, mais je ne peux jamais voir la variable POST.
Dans mon combat, je suis de nouveau à ce code, sans parler du fait que j'ai affaire à plusieurs processus asyncTask et que la compilation des librairies dans Gradle était un cauchemar.
Dans 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();
Dans le serveur.
$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
}
depuis un serveur
E/Debug: File is written
E/Debug: Server Response email is
Très étrange que vous avez des problèmes. Le code pour poster un fichier et quelques paramètres a été posté si souvent sur stackoverflow. Alors pourquoi est-ce que vous ne pouvez pas le trouver? En principe, chaque paramètre et sa valeur doivent être envoyés entre deux lignes de démarcation. Comme le fichier. Alors, google. – greenapps