Frage

Das folgende ist das runtime exeception Was ich bekam, während ich versuche, ein Bild auf den Server hochzuladen.enter image description here

Und versuche ein Bild mit meinem lokalen Server (WAMP) hochzuladen und mein Android -Code ist

Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/Sunset.jpg");

     //   Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.background1); 
            ByteArrayOutputStream stream = new ByteArrayOutputStream();

            bitmap.compress(Bitmap.CompressFormat.PNG, 90, stream); //compress to which format you want.

            byte [] byte_arr = stream.toByteArray();
            String image_str = Base64.encodeBytes(byte_arr);

            ArrayList<NameValuePair> nameValuePairs = new  ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("image",image_str));

            try{

                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost("http://192.168.1.49/android/upload_image.php");

                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                HttpResponse response = httpclient.execute(httppost);

                String the_string_response = convertResponseToString(response);

                Toast.makeText(uploadimage.this, "Response  " + the_string_response, Toast.LENGTH_LONG).show();

            }catch(Exception e){
                  Toast.makeText(uploadimage.this, "ERROR " + e.getMessage(), Toast.LENGTH_LONG).show();

                  System.out.println("Error  http   connection"+e.toString());
            }

        }

        public String convertResponseToString(HttpResponse response) throws IllegalStateException, IOException{

             String res = "";
             StringBuffer buffer = new StringBuffer();

             inputStream = response.getEntity().getContent();
             int contentLength = (int) response.getEntity().getContentLength(); //getting content length…..

             Toast.makeText(uploadimage.this, "contentLength : " + contentLength, Toast.LENGTH_LONG).show();

             if (contentLength < 0){
             }
             else{
                    byte[] data = new byte[512];
                    int len = 0;

                    try
                    {
                        while (-1 != (len = inputStream.read(data)) )
                        {

                            buffer.append(new String(data, 0, len)); //converting to string and appending  to stringbuffer…..

                        }

                    }

                    catch (IOException e)
                    {
                        e.printStackTrace();
                    }

                    try
                    {
                        inputStream.close(); // closing the stream…..
                    }
                    catch (IOException e)
                    {
                        e.printStackTrace();
                    }   
                     res = buffer.toString();     // converting string buffer to string

                    Toast.makeText(uploadimage.this, "Result : " + res, Toast.LENGTH_LONG).show();

                    //System.out.println("Response => " +  EntityUtils.toString(response.getEntity()));

             }
  return res;

        }

}

Und das ist mein PHP -Code, den ich aus dem Internet erhalten habe.

<?php

    $base=$_REQUEST['image'];

     $binary=base64_decode($base);

    header('Content-Type: bitmap; charset=utf-8');

    $file = fopen('uploaded_image.jpg', 'wb');

    fwrite($file, $binary);

    fclose($file);

    echo 'Image upload complete!!, Please check your php file directory……';

?>

Kann mir jemand dabei helfen, mein Problem zu lösen? vielen Dank im Voraus

War es hilfreich?

Lösung

Sie müssen ein zusätzliches Verzeichnis in C: erstellen und dann lesen, schreiben und die Erlaubnis ausführen. Schreiben Sie in Ihrem PHP -Code bitte den absoluten Pfad des Speicherorts.

Dies kann Ihr Problem lösen.

Denken Sie daran, den IIS -Server im Administratormodus auszuführen.

Andere Tipps

Inetpub wird vom Systembenutzer erstellt. Dies bedeutet, dass Sie ohne Administratorberechtigte keine Änderungen an diesem oder einer seiner Unterverzeichnisse vornehmen dürfen. Ändern Sie die Berechtigungen des inetpub -Ordners, damit jeder die Dateien ändern kann. Klicken Sie mit der rechten Maustaste -> Eigenschaften -> ... Ich vergesse danach, was zu tun ist. (Ich bin gerade unter Linux). Wenn das nicht funktioniert, stellen Sie sicher, dass Sie IIS als Administrator ausführen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top