2

2日間サーバーに画像をアップロードしようとしましたが、画像を投稿できませんでした.コーディングはコンパイルされ、正常に実行されましたが、imagはサーバーに書き込まれません.

これは私のコーディングです:

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.widget.Toast;

public class sde extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        loadtoUrl("http://
");
    }

    private void loadtoUrl(String string) {

        // TODO Auto-generated method stub
         try {
             String pathToOurFile = "/sdcard/tamil.PNG";
             FileInputStream fileInputStream = new FileInputStream(new File(pathToOurFile) );
             BufferedInputStream bis = new BufferedInputStream(fileInputStream,3000);
             byte[] bt=new byte[bis.available()];
            HttpURLConnection connection = (HttpURLConnection)new URL(string).openConnection();
             connection.setDoOutput(true);
             connection.setRequestMethod("POST");
             connection.connect();
            FileOutputStream input = (FileOutputStream) connection.getOutputStream();
            input.write(bt);
        } catch (MalformedURLException e) {
            Context context = null;
            int duration = 0;
            Toast.makeText(context, "erro in writing", duration);
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}
4

2 に答える 2

3

ここに素晴らしい記事がありますhttp://blog.sptechnolab.com/2011/03/09/android/android-upload-image-to-server/。画像をアップロードしてサーバー側で書き込む例が含まれています。できます。

于 2011-03-15T08:45:18.060 に答える
1
public boolean fileUpload(Map<String , String> params, ByteArrayOutputStream file, String link) throws Throwable{


    Account user = Util.getAccount(getApplicationContext());

    try{

        HttpClient httpClient = new DefaultHttpClient();

        HttpPost postRequest = new HttpPost(link);

        MultipartEntity multipartContent = new MultipartEntity();

        if (params != null && !params.isEmpty()) {
            for (Map.Entry<String , String> entry : params.entrySet()) {
                multipartContent.addPart(entry.getKey(),new StringBody(entry.getValue(),Charset.forName(HTTP.UTF_8)));
            }
        }

        byte[] data = file.toByteArray();

        ByteArrayBody img = new ByteArrayBody(data, "capture.jpg");
        multipartContent.addPart("image",img);
        postRequest.setEntity(multipartContent);
        HttpResponse res = httpClient.execute(postRequest);
        res.getEntity().getContent().close();

        return true;

    }catch(Throwable e){
        throw e;
    }

}
于 2012-04-25T09:40:49.940 に答える