sylv_1 Posté(e) 26 avril 2011 Share Posté(e) 26 avril 2011 Bonjour, je cherche à uploader un fichier image depuis android vers un formulaire http. Après de longues heures cela ne fonctionne pas, et je ne vois pas où est le problème. Pourriez-vous m'aider s'il vous plait ? voici l'extrait de code. public void doHttpUpload(File myImage) { int check = 0; String lineEnd = "\r\n"; String twoHyphens = "--"; String boundary = "*****"; String photofile = null; String httpResponse; //to read http response String filename=null; String urlString = "http://dredge.phpnet.org/Test/form_upload.html"; HttpURLConnection conn = null; InputStream fis = null; Bitmap mBitmap=null; String pathfile; filename = "myFile.png"; try { URL site = new URL(urlString); conn = (HttpURLConnection) site.openConnection(); //on peut écrire et lire conn.setDoOutput(true); conn.setDoInput(true); // Use a post method. conn.setRequestMethod("POST"); conn.setRequestProperty("Connection", "Keep-Alive"); conn.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary); //Log.d("taille image",""+myImage.length()); fis = new FileInputStream(myImage); InputStream in = null; in = new BufferedInputStream(fis); //mBitmap = BitmapFactory.decodeStream(fis); DataOutputStream dos = new DataOutputStream(conn.getOutputStream()); dos.writeBytes("Content-Disposition: form-data;myFile=\"" + filename + "\"" + lineEnd); dos.writeBytes("Content-Type: image/gif" +lineEnd +lineEnd); // send multipart form data necesssary after file data... int bytesAvailable = in.available();//fis.available(); Log.d("bytesAvailable",""+bytesAvailable); int maxBufferSize = 1*1024*1024; int bufferSize = Math.min(bytesAvailable, maxBufferSize); byte[] buffer = new byte[bufferSize]; // read file and write it into form... int bytesRead = in.read(buffer, 0, bufferSize); Log.d("nb byteread",""+bytesRead); while (bytesRead > 0){ dos.write(buffer, 0, bufferSize); bytesAvailable = in.available(); Log.d("nb bytesAvailable",""+bytesAvailable); bufferSize = Math.min(bytesAvailable, maxBufferSize); bytesRead = in.read(buffer, 0, bufferSize); } //dos.writeBytes(lineEnd); //dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd); // close streams fis.close(); dos.flush(); dos.close(); Log.e("fileUpload","File is written on the queue"); } catch (MalformedURLException e) { e.printStackTrace(); //Toast.makeText(HttpUploader.this, "échec de connexion au site web ", Toast.LENGTH_SHORT).show(); Log.i(getClass().getSimpleName(),"échec de connexion au site web 1"); } catch (IOException e) { e.printStackTrace(); //Toast.makeText(HttpUploader.this, "échec de connexion au site web ", Toast.LENGTH_SHORT).show(); Log.i(getClass().getSimpleName(),"échec de connexion au site web 2"); } merci de votre aide :emo_im_angel: Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.