Android上传图片和文件到服务器

在项目开发中,需要上传图片和文件到服务器端,所以需要安卓模拟文件表单提交。

安卓端代码:

 private String uploadFile()
    {
    	DebugLogger.d(TAG, "start upload img!");
      String end ="\r\n";
      String twoHyphens ="--";
      String boundary ="*****";
      try
      {
        URL url =new URL(server_img);
        HttpURLConnection con=(HttpURLConnection)url.openConnection();
        /* 允许Input、Output,不使用Cache */
        con.setDoInput(true);
        con.setDoOutput(true);
        con.setUseCaches(false);
        /* 设置传送的method=POST */
        con.setRequestMethod("POST");
        /* setRequestProperty */
        con.setRequestProperty("Connection", "Keep-Alive");
        con.setRequestProperty("Charset", "UTF-8");
        con.setRequestProperty("Content-Type",
                           "multipart/form-data;boundary="+boundary);
        /* 设置DataOutputStream */
        DataOutputStream ds =
          new DataOutputStream(con.getOutputStream());
        ds.writeBytes(twoHyphens + boundary + end);
        ds.writeBytes("Content-Disposition: form-data; "+
                      "name=\"uploaded\";filename=\""+
                      device_id+"\""+ end);
        ds.writeBytes(end);  
        /* 取得文件的FileInputStream */
        String imgUrl=Environment.getExternalStorageDirectory()+"/CameraOn/10.jpg";;
        FileInputStream fStream =new FileInputStream(imgUrl);
        /* 设置每次写入1024bytes */
        int bufferSize =1024;
        byte[] buffer =new byte[bufferSize];
        int length =-1;
        /* 从文件读取数据至缓冲区 */
        while((length = fStream.read(buffer)) !=-1)
        {
          /* 将资料写入DataOutputStream中 */
          ds.write(buffer, 0, length);
        }
        ds.writeBytes(end);
        ds.writeBytes(twoHyphens + boundary + twoHyphens + end);
        /* close streams */
        fStream.close();
        ds.flush();
        /* 取得Response内容 */
        InputStream is = con.getInputStream();
        int ch;
        StringBuffer b =new StringBuffer();
        while( ( ch = is.read() ) !=-1 )
        {
          b.append( (char)ch );
        }
        /* 将Response显示于Dialog */
        //showDialog("上传成功"+b.toString().trim());
        DebugLogger.d("upload img", "upload img success!");
        DebugLogger.d("upload img", b.toString());
        //displayToast("UPLOAD img success!");
        /* 关闭DataOutputStream */
        ds.close();
        return b.toString();
      }
      catch(Exception e)
      {
    	  DebugLogger.d("upload img", "upload img failed!");
    	  //displayToast("upload failed");
        //showDialog("上传失败"+e);
    	  return "failed!";
      }
    }


服务器端php代码:  

<?PHP
   /* $target = "upload/";
	$target = $target.basename($_FILES['uploaded']['name']);
	$ok = 1;
	if(move_uploaded_file($_FILES['uploaded']['temp_name'], $target))
	{
		echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded";
	}
	else
	{
		echo "Sorry, there was a problem uploading your file.";
	}*/

	//require_once 'inc_thumb.php';
	$pp = "upload/";
	$FileID=date("Ymd-His") . '-' . rand(100,999);
	/*$typeName = basename($_FILES['uploaded']['name']);
	$indexFrom = strpos($typeName, ".");
	$jpgLength =  strlen($typeName);*/
	$target = $pp.$FileID;//.substr($typeName, $indexFrom, $jpgLength-$indexFrom);//basename($_FILES['uploaded']['name']);
	$thumb = $pp.$FileID."th".basename($_FILES['uploaded']['name']);
	$ok=1;
	//echo "------".substr($typeName, $indexFrom, $jpgLength-$indexFrom)."---".$target."--";

	if(move_uploaded_file($_FILES['uploaded']['tmp_name'],$target))
	{
		//makethumb($target,$thumb,"75","75");
		echo "The file ".basename($_FILES['uploaded']['name'])." has been uploaded successful.";
	}
		
	else
	{
		echo "Sorry, there was a problem uploading your file.failed";
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值