Android 如何将图像上传到服务器
我尝试将图像上载到服务器两天,但无法发布图像。编码已编译并成功运行,但imag未写入服务器 这是我的代码: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
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-找不到页面”无法访问此链接。