`
大头K
  • 浏览: 186408 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

android手机客户端上传文件,java servlet服务器端接收并保存到服务器

阅读更多
内容如题,不多说,直接上代码。

android客户端代码:
public class MainActivity extends Activity
{
	private TextView uploadInfo;

	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		uploadInfo = (TextView) findViewById(R.id.upload_info);

		uploadFile();
	}

	public void uploadFile()
	{
		//服务器端地址
		String url = "http://192.168.0.108:8080/UploadFileServer/upload";
		//手机端要上传的文件,首先要保存你手机上存在该文件
		String filePath = Environment.getExternalStorageDirectory()
				+ "/1/power.apk";

		AsyncHttpClient httpClient = new AsyncHttpClient();

		RequestParams param = new RequestParams();
		try
		{
			param.put("file", new File(filePath));
			param.put("content", "liucanwen");
			
			httpClient.post(url, param, new AsyncHttpResponseHandler()
			{
				@Override
				public void onStart()
				{
					super.onStart();
					
					uploadInfo.setText("正在上传...");
				}
				
				@Override
				public void onSuccess(String arg0)
				{
					super.onSuccess(arg0);

					Log.i("ck", "success>" + arg0);
					
					if(arg0.equals("success"))
					{
						Toast.makeText(MainActivity.this, "上传成功!", 1000).show();
					}
					
					uploadInfo.setText(arg0);
				}
				
				@Override
				public void onFailure(Throwable arg0, String arg1)
				{
					super.onFailure(arg0, arg1);
					
					uploadInfo.setText("上传失败!");
				}
			});
			
		} catch (FileNotFoundException e)
		{
			e.printStackTrace();
			Toast.makeText(MainActivity.this, "上传文件不存在!", 1000).show();
		}
	}
}



服务器端代码:
public class UploadFileServlet extends HttpServlet
{

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException
	{
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();

		// 创建文件项目工厂对象
		DiskFileItemFactory factory = new DiskFileItemFactory();

		// 设置文件上传路径
		String upload = this.getServletContext().getRealPath("/upload/");
		// 获取系统默认的临时文件保存路径,该路径为Tomcat根目录下的temp文件夹
		String temp = System.getProperty("java.io.tmpdir");
		// 设置缓冲区大小为 5M
		factory.setSizeThreshold(1024 * 1024 * 5);
		// 设置临时文件夹为temp
		factory.setRepository(new File(temp));
		// 用工厂实例化上传组件,ServletFileUpload 用来解析文件上传请求
		ServletFileUpload servletFileUpload = new ServletFileUpload(factory);

		// 解析结果放在List中
		try
		{
			List<FileItem> list = servletFileUpload.parseRequest(request);

			for (FileItem item : list)
			{
				String name = item.getFieldName();
				InputStream is = item.getInputStream();

				if (name.contains("content"))
				{
					System.out.println(inputStream2String(is));
				} else if(name.contains("file"))
				{
					try
					{
						inputStream2File(is, upload + "\\" + item.getName());
					} catch (Exception e)
					{
						e.printStackTrace();
					}
				}
			}
			
			out.write("success");
		} catch (FileUploadException e)
		{
			e.printStackTrace();
			out.write("failure");
		}

		out.flush();
		out.close();
	}

	// 流转化成字符串
	public static String inputStream2String(InputStream is) throws IOException
	{
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		int i = -1;
		while ((i = is.read()) != -1)
		{
			baos.write(i);
		}
		return baos.toString();
	}

	// 流转化成文件
	public static void inputStream2File(InputStream is, String savePath)
			throws Exception
	{
		System.out.println("文件保存路径为:" + savePath);
		File file = new File(savePath);
		InputStream inputSteam = is;
		BufferedInputStream fis = new BufferedInputStream(inputSteam);
		FileOutputStream fos = new FileOutputStream(file);
		int f;
		while ((f = fis.read()) != -1)
		{
			fos.write(f);
		}
		fos.flush();
		fos.close();
		fis.close();
		inputSteam.close();
		
	}

}



客户端和服务器端代码下载地址:
http://download.csdn.net/detail/qq15989177612/6900727
0
0
分享到:
评论
4 楼 q316085319 2014-06-18  
更多学习,可以访问:http://www.glmei.cn/
3 楼 大头K 2014-04-15  
QQ756054200 写道
许久没搞过java了,导入java servlet服务器端程序后,报错了
我是在Android ADT集成环境下导入的,是不是没有装tomcat?还是其他的缘故呢?


对啊,你导入myeclipse应该就没问题了!
2 楼 QQ756054200 2014-04-08  
这个是没有servlet jar包的缘故,还有就是tomcat服务器还是需要的,对吧?
直接装上就行了吗?还是需要配置一些东西呢?
1 楼 QQ756054200 2014-04-08  
许久没搞过java了,导入java servlet服务器端程序后,报错了
我是在Android ADT集成环境下导入的,是不是没有装tomcat?还是其他的缘故呢?

相关推荐

    android上传文件,java服务器接收 客户端与服务器端两端上传代码

    在Android平台上,将文件上传至...通过以上步骤,Android客户端可以成功地将文件上传到Java Servlet服务器,并且服务器能正确接收并保存这些文件。实现过程中,需要注意各种细节,以确保文件上传的稳定性和安全性。

    android客户端向java服务器端上传文件.zip

    在Android客户端与Java服务器端的通信中,文件...总的来说,Android客户端向Java服务器端上传文件涉及到网络通信、文件处理、多线程以及服务器端的数据接收和存储。理解这些概念并正确实现它们是开发这类应用的关键。

    android客户端上传文件到服务器端

    6. **文件流操作**:在服务器端接收到文件后,可以将其保存到硬盘。文件流的处理是关键,确保正确地读取客户端发送的文件流,并将其写入服务器的指定位置。使用`InputStream`和`OutputStream`进行操作,并注意关闭流...

    android 选择文件上传至服务器 包含服务器代码

    通过以上步骤,可以实现Android客户端的文件选择和上传功能,并在服务器端成功接收并保存这些文件。为了完善应用,还应考虑用户体验,如显示上传进度、提供取消上传的选项,以及对上传结果的反馈。如果你有任何问题...

    android 客户端服务器 servlet

    本项目涉及的是一个基于Java Servlet技术的服务器端实现,专为Android客户端设计,同时集成了MySQL数据库,为客户端提供数据存储和检索功能。以下将详细阐述相关知识点。 **Java Servlet** Java Servlet是一种Java...

    servlet服务器端和android客户端json数据交互

    本主题聚焦于"Servlet服务器端"与"Android客户端"之间通过HTTP协议使用JSON进行数据交换的技术实现。 Servlet是Java Web开发中的一个重要组件,它运行在服务器上,负责处理来自客户端(如浏览器或Android应用)的...

    android手机客户端上传文件到客户端(web应用)_源代码代码

    在Android平台上,开发一款应用程序使用户能够从手机客户端上传文件到服务器端是一项常见的任务。这里,我们关注的是一个具体的实现案例,涉及到Android客户端和Java Web(Tomcat服务器)的交互。这个项目提供了一套...

    Android手机客户端与Web服务器的通信.pdf

    5. 服务器端接收和响应Android手机终端请求 在Android手机终端发送请求后,服务器端会根据请求的数据信息进行运算,然后把运算结果响应给手机客户端。服务器端可以使用Http的Post方法接收数据,并使用Servlet子类...

    java web接收上传文件服务器端示例

    本示例项目主要关注如何在服务器端使用Java Servlet接收Android客户端上传的文件。在处理上传文件时,我们通常需要关注以下几个核心知识点: 1. **HTTP协议与Multipart请求**:在Android客户端上传文件时,通常会...

    Android客户端与服务器端通信Demo

    在Android应用开发中,客户端与服务器端的通信是不可或缺的一部分,它使得移动设备能够获取、发送数据,实现功能如登录注册、数据同步、文件上传下载等。本Demo着重展示了这一核心概念,通过实例来帮助开发者理解和...

    android通过servlet服务器保存文件到手机

    总的来说,Android应用通过Servlet服务器保存文件到手机的过程涉及到服务器端的Servlet处理文件请求,以及客户端的网络请求和文件保存操作。确保在处理过程中考虑到错误处理、安全性和性能优化。

    安卓客户端&Servlet服务器端实现

    在IT行业中,安卓客户端与Servlet服务器端的交互是构建移动应用和服务端通信的重要部分。这里我们将深入探讨这一主题,重点关注如何在安卓应用中实现客户端功能,并利用Servlet在服务器端进行数据处理。 首先,安卓...

    android 客户端 和 服务器端

    服务器端通常使用诸如Java的Servlet、Spring MVC,Python的Flask或Django,Node.js的Express等框架来设计API接口,接收和处理来自Android客户端的请求。 1. GET请求处理:服务器端根据接收到的URL解析参数,然后...

    Android客户端远程登录web服务器数据交换实例

    在服务器端,Struts2负责接收Android客户端的HTTP请求,并调用相应的Action(业务逻辑)。例如,登录Action可以检查接收到的JSON数据,与数据库中的记录进行比较,然后返回结果。 JavaBean是Java语言中的一种规范,...

    android手机客户端获取服务器端的json数据的demo

    在服务器端,Servlet负责接收客户端的请求并返回JSON数据。Servlet的工作流程包括初始化、服务、销毁等阶段,其中`doGet`或`doPost`方法用于处理HTTP请求。以下是一个简单的Servlet示例,返回JSON数据: ```java ...

    Android客户端上传数据到tomcat服务端的源码

    总之,Android客户端上传数据到Tomcat服务器涉及了网络编程、文件操作、多线程、数据序列化等多个方面,理解并熟练掌握这些知识点对于开发高效、安全的应用至关重要。在实际开发中,还需要考虑各种边界情况和性能...

    android通过http上传文件到服务器

    本教程将详细介绍如何通过HTTP协议在Android客户端实现文件上传,并在服务器端使用Servlet进行处理。 首先,我们需要理解HTTP协议。HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于从万维网...

    android下载服务器(servlet)端文件

    ### Servlet服务器端 #### 1. Servlet介绍 Servlet是Java的一种服务器端组件,用于扩展Web服务器的功能。在这个项目中,Servlet被用来处理Android客户端的文件下载请求。 #### 2. 文件流处理 服务器端的Servlet接收...

    Android与servlet服务器交互

    接下来,我们转向Servlet服务器端。Servlet是Java服务器端的程序,它可以接收并响应HTTP请求。在Java中,我们创建一个继承自HttpServlet的类,并重写doGet()或doPost()方法。以下是一个简单的Servlet示例: ```java...

    以Android端为客户端和servlet为服务端的实时通讯(登录注册)

    在构建一个以Android客户端和Servlet服务端的实时通讯系统时,我们主要涉及到以下几个关键知识点: 1. **Android客户端开发**:Android是Google主导的开源移动操作系统,主要用于智能手机和平板电脑。在实现登录...

Global site tag (gtag.js) - Google Analytics