图片文件上传

        //一些定义的变量
        private String newName = "image.jpg";
	private String uploadFile = "/sdcard/apple.jpg";
	//private String actionUrl = "http://localhost:8080/testCutPic/upload.php";
	//上传图片地址,上传的图片文件参数名为fileToUpload
	private String actionUrl="http://192.168.1.64/svn_ys/sousoutu/api/api_imgupload.php";

 HttpClient请求客户端方式:

                private void postFile(){
		   
		   HttpClient httpclient = new DefaultHttpClient();
		   httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);

		    HttpPost httppost = new HttpPost("http://192.168.1.64/svn_ys/sousoutu/api/api_imgupload.php");
		   
		    File file = new File(uploadFile);
		//  File file2=new File(uploadFile);
		    
		    ContentBody cbFile = new FileBody(file, "image/jpeg");
		//  ContentBody cbFile2 = new FileBody(file2, "image/jpeg");
		    MultipartEntity mpEntity = new MultipartEntity();
		  
		    mpEntity.addPart("fileToUpload", cbFile);
		//  mpEntity.addPart("fileToUpload2", cbFile2);
	        //  mpEntity.addPart("字符串参数", new StringBody("user"));
		

		    httppost.setEntity(mpEntity);
		    
		    Log.d("log", "请求信息: " + httppost.getRequestLine());
		 //   System.out.println("executing request " + httppost.getRequestLine());
		    HttpResponse response = null;
			try {
				response = httpclient.execute(httppost);
			} catch (ClientProtocolException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		    HttpEntity resEntity = response.getEntity();
		    
		    Log.d("log", "响应信息:"+response.getStatusLine().toString());
		   // System.out.println(response.getStatusLine());
		    if (resEntity != null) {
		      try {
		    	  final String response_str=EntityUtils.toString(resEntity);
		    	  Log.d("log", response_str);
			} catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		    }
		    if (resEntity != null) {
		      try {
				resEntity.consumeContent();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		    }

		    httpclient.getConnectionManager().shutdown();
	    }
字节流的方式上传:

   private void uploadFile() {
		String end = "\r\n";
		String twoHyphens = "--";
		String boundary = "*****";
		try {
			URL url = new URL(actionUrl);
			HttpURLConnection con = (HttpURLConnection) url.openConnection();

			con.setDoInput(true);
			con.setDoOutput(true);
			con.setUseCaches(false);

			con.setRequestMethod("POST");

			con.setRequestProperty("Connection", "Keep-Alive");
			con.setRequestProperty("Charset", "UTF-8");
			con.setRequestProperty("Content-Type",
					"multipart/form-data;boundary=" + boundary);

			DataOutputStream ds = new DataOutputStream(con.getOutputStream());
			ds.writeBytes(twoHyphens + boundary + end);
			ds.writeBytes("Content-Disposition: form-data; "
					+ "name=\"file1\";filename=\"" + newName + "\"" + end);
			ds.writeBytes(end);

			FileInputStream fStream = new FileInputStream(uploadFile);

			int bufferSize = 1024;
			byte[] buffer = new byte[bufferSize];

			int length = -1;

			while ((length = fStream.read(buffer)) != -1) {

				ds.write(buffer, 0, length);
			}
			ds.writeBytes(end);
			ds.writeBytes(twoHyphens + boundary + twoHyphens + end);

			fStream.close();
			ds.flush();

			InputStream is = con.getInputStream();
			int ch;
			StringBuffer b = new StringBuffer();
			while ((ch = is.read()) != -1) {
				b.append((char) ch);
			}

			showDialog("上传成功" + b.toString().trim());

			ds.close();
		} catch (Exception e) {
			e.printStackTrace();
			showDialog("上传失败" + e);
		}
	}

用到的dialog对话框,用来显示测试结果:

       private void showDialog(String mess) {
		new AlertDialog.Builder(TestuploadImageActivity.this)
				.setTitle("Message").setMessage(mess)
				.setNegativeButton("确定", new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int which) {
					}
				}).show();
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值