Android 如何将图像上传到服务器

Android 如何将图像上传到服务器,android,android-networking,Android,Android Networking,我尝试将图像上载到服务器两天,但无法发布图像。编码已编译并成功运行,但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.Out

我尝试将图像上载到服务器两天,但无法发布图像。编码已编译并成功运行,但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();
        }

    }
}
这是一篇很好的文章。它包含一个将上载图像并将其写入服务器端的示例。它可以工作。

公共布尔文件上载(映射参数、ByteArrayOutputStream文件、字符串链接)抛出Throwable{
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;
    }

}
帐户用户=Util.getAccount(getApplicationContext()); 试一试{ HttpClient HttpClient=新的DefaultHttpClient(); HttpPostRequest=新的HttpPost(链接); MultipartEntity multipartContent=新的MultipartEntity(); if(params!=null&&!params.isEmpty()){ 对于(Map.Entry:params.entrySet()){ multipartContent.addPart(entry.getKey(),newstringbody(entry.getValue(),Charset.forName(HTTP.UTF_8)); } } 字节[]数据=file.toByteArray(); ByteArrayBody img=新的ByteArrayBody(数据,“capture.jpg”); multipartContent.addPart(“图像”,img); setEntity(multipartContent); HttpResponse res=httpClient.execute(postRequest); res.getEntity().getContent().close(); 返回true; }捕获(可丢弃的e){ 投掷e; } }
“错误404-找不到页面”无法访问此链接。