Problem med bilduppladdning

Diskussion i 'Frågor, support och diskussion' startad av Niklas, 13 apr 2010.

  1. Niklas

    Niklas Youth Droid Medlem

    Blev medlem:
    1 jun 2009
    Inlägg:
    110
    Mottagna gillanden:
    24
    Operatör:
    Telia företag
    Telefon:
    Pixel 6 Pro

    MINA ENHETER

    Operatör:
    Telia företag
    Telefon:
    Pixel 6 Pro
    Platta:
    iPad Air
    Hej,

    Först lite kort om vad det är jag skall göra.

    Jag håller på med ett program där jag kan ladda upp bilder till min webbserver (php) och när jag väljer "share" i gallery så öppnas mitt program och bilden visas i en ImageView.

    Problemet kommer när jag skall ladda upp denna till Servern. Jag får hela tiden "FileNotFoundException" och jag fattar bara inte hur jag skall åtgärda detta. Jag bifogar lite kod och hoppas på att någon kan hjälpa mig.

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.sendimage);

    ImageView img = (ImageView) findViewById(R.id.ImageToSend);
    Intent intent = getIntent();
    Bundle extra = intent.getExtras();

    Uri imageUri = (Uri) extra.get(Intent.EXTRA_STREAM);
    img.setImageURI(imageUri);

    Cursor c = managedQuery(u, null, null, null, null);
    String path = "";
    if (c.moveToFirst()) {
    do {
    int max = c.getColumnCount();
    for (int i = 0; i < max; i++) {
    String colName = c.getColumnName(i);
    String value = c.getString(c.getColumnIndex(colName));
    if(colName.equals("_data"))
    path = value;

    if (colName != null){
    //Log.d("columnName: ", colName);
    }

    if (value != null) {
    //Log.d("value", value);
    }
    }
    } while (c.moveToNext());
    }
    try{


    InputStream is = this.getAssets().open(path);
    HttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost("http://www.redrockdesign.se/android/api/image.php");
    byte[] data = IOUtils.toByteArray(is);
    InputStreamBody isb = new InputStreamBody(new ByteArrayInputStream(data), "uploadedFile");
    MultipartEntity multipartContent = new MultipartEntity();
    multipartContent.addPart("uploadedFile", isb);
    multipartContent.addPart("headline", new StringBody("rubrik"));
    post.setEntity(multipartContent);
    HttpResponse response = client.execute(post);
    BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
    StringBuilder sb = new StringBuilder();
    String line = "";
    String newLine = System.getProperty("line.separator");
    Log.d("Innan while", "innan while");
    while((line = reader.readLine()) != null){
    sb.append(line + newLine);
    Log.d("inne i while", sb.toString());
    }
    Log.d("Efter while" , sb.toString());
    reader.close();


    }
    catch(Exception e){ Log.e("Exception", e.toString());}
    }
     
  2. Berglund

    Berglund Youth Droid Medlem

    Blev medlem:
    30 nov 2009
    Inlägg:
    108
    Mottagna gillanden:
    10

    MINA ENHETER

    För att göra koden lite enklare att läsa, klistra in den här; http://gist.github.com/

    Sen klickar du "show embed", och använder den koden här.


    Det första, för att underlätta för framtiden av din app, som jag skulle göra är att göra en metod för att få ut riktiga platsen från URIn, ungefär såhär:

    <script src="http://gist.github.com/364945.js"></script>

    Och så drar du en:

    String pathToFile = getRealPathFromURI(path);

    Ska kolla vidare på koden.
     
  3. Niklas

    Niklas Youth Droid Medlem

    Blev medlem:
    1 jun 2009
    Inlägg:
    110
    Mottagna gillanden:
    24
    Operatör:
    Telia företag
    Telefon:
    Pixel 6 Pro

    MINA ENHETER

    Operatör:
    Telia företag
    Telefon:
    Pixel 6 Pro
    Platta:
    iPad Air
    Det vore hemsk tacksamt.

    //Niklas