Ladda upp bild app

Diskussion i 'Frågor, support och diskussion' startad av joxxe, 28 dec 2010.

  1. joxxe

    joxxe Infant Droid Medlem

    Blev medlem:
    28 dec 2010
    Inlägg:
    5
    Mottagna gillanden:
    0

    MINA ENHETER

    Hej!

    Har precis köpt mig en HTC Desire och som hyffsat van programmerar måste jag ju
    pröva att göra min egna app.
    Håller på att göra en som skall ladda upp bilder till min egna server.
    Tänkte göra det mha http post.
    Problemet jag kommit till nu är att, när jag valt bilden i tex Galleriet och valt Share och sedan mitt program, hur får jag då åtkomst till just den valda bilden i mitt program?

    Har börjat ungerfär såhär:
    PHP:
    public class PirayaSharer extends Activity {
        
    /** Called when the activity is first created. */
        
    @Override
        
    public void onCreate(Bundle savedInstanceState) {
            
    super.onCreate(savedInstanceState);

            
    Intent intent getIntent();
            
    Bundle extras intent.getExtras();
            
    String action intent.getAction();

            
    // if this is from the share menu
            
    if (Intent.ACTION_SEND.equals(action)) {
                if (
    extras.containsKey(Intent.EXTRA_STREAM)) {
                    try {
                        
    // Get resource path from intent callee
                        
    Uri uri = (Uriextras.getParcelable(Intent.EXTRA_STREAM);
                        
    byte[] data getBytesFromFile(getContentResolver()
                                .
    openInputStream(uri));
                        
    SendRequest(new String(data));
                        return;
                    } catch (
    Exception e) {
                        
    Log.e(this.getClass().getName(), e.toString());
                    }

                }
            }

        }
    Där jag då försöker kontrollera om det är en godkänd "action" och i såfall läsa in bilden som en bytearray och sedan skicka upp den i form av en string till servern (inte implementerat den biten än).
    Men som det ser ut nu lyckas jag inte ens få programmet att gå in i If-satsen...
     
  2. Kaj

    Kaj Senior Droid Medlem

    Blev medlem:
    12 jun 2009
    Inlägg:
    1 768
    Mottagna gillanden:
    44

    MINA ENHETER

    Lägg till loggutskrifter så kan du se vad det är du får in.

    Angående att skicka bilden som en sträng. Det kommer inte att gå. En bild är binärdata, och när du omvandlar det till en sträng så kommer det bli fel såvida du inte gör om binärdatat till t.ex Base64-encoded, men det verkar som fel väg att gå.
     
  3. joxxe

    joxxe Infant Droid Medlem

    Blev medlem:
    28 dec 2010
    Inlägg:
    5
    Mottagna gillanden:
    0

    MINA ENHETER

    Får ta en titt i loggen.
    Okej, får kolla på uppladdingen senare, vill först få igång if-satsen.
     
  4. joxxe

    joxxe Infant Droid Medlem

    Blev medlem:
    28 dec 2010
    Inlägg:
    5
    Mottagna gillanden:
    0

    MINA ENHETER

    Har lyckats få if-satsen att fungera nu.
    Även tittat på lite exempel för att ladda upp bilder, får nog bli med HttpClient och HttpPost.
    Men just nu har jag problemet att jag inte lyckas få rätt adress till den valda bilden.
    Koden ser ut enligt följande:
    PHP:
    Log.i(this.getClass().getName(), "upload picture");
    Uri uri = (Uriextras.getParcelable(Intent.EXTRA_STREAM);
    String filePath uri.getPath();
    Log.i(this.getClass().getName(),filePath);
    filePath är då /external/images/media/2
    Tycker det borde vara .jpg eller .png eller vad det nu är för filtyp, eller?
     
  5. Buzz

    Buzz Android Apprentice Medlem

    Blev medlem:
    14 maj 2010
    Inlägg:
    4 915
    Mottagna gillanden:
    2 217

    MINA ENHETER

    Har du kollat med Astro (eller någon annan filhanterare) vad filen egentligen heter?
     
  6. joxxe

    joxxe Infant Droid Medlem

    Blev medlem:
    28 dec 2010
    Inlägg:
    5
    Mottagna gillanden:
    0

    MINA ENHETER

    Nej för jag har inte lyckats få ner astro till emulatorn.
    Och när jag testar på telefonen lyckas jag inte se log-outputen.

    EDIT:
    fixade astor och sökvägen är rätt fel kan man lätt säga.
    Testade med följande kod:
    sendFile("/mnt/sdcard/DCIM/Camera/IMG_20101228_214727.jpg");

    och sedan anropade jag min funktion
    private void sendFile(String filepath)

    Då lyckades jag ladda upp bilden, så det fungerar om jag hårdkodar in adressen till bilden.
    Problemet är alltså att läsa ut adressen från den valda bilden, försökte med något sådant:

    Uri filePath = (Uri)extras.getParcelable(Intent.EXTRA_STREAM);
    sendFile(filePath.getPath());

    Men då får jag som sagt en felaktig adress.

    EDIT2:
    Löste det genom lite googling. Tack för hjälpen. Nu fungerar iaf en tidig version av appen.
     
    Last edited: 30 dec 2010
  7. Poptot

    Poptot Senior Droid Medlem

    Blev medlem:
    10 aug 2010
    Inlägg:
    1 316
    Mottagna gillanden:
    74

    MINA ENHETER

    Kan du lägga upp en .apk?

    Sent from my HTC Desire Z using Tapatalk
     
  8. joxxe

    joxxe Infant Droid Medlem

    Blev medlem:
    28 dec 2010
    Inlägg:
    5
    Mottagna gillanden:
    0

    MINA ENHETER

    Njäe.
    Det är en bilduppladdnings app för ett slutet sällskap.
    Däremot kan jag ladda upp källkoden utan adressen till servern.
     
  9. Poptot

    Poptot Senior Droid Medlem

    Blev medlem:
    10 aug 2010
    Inlägg:
    1 316
    Mottagna gillanden:
    74

    MINA ENHETER

    Missförstod vad detta var för applikation.
    Sorry

    Sent from my HTC Desire Z using Tapatalk