近段要写一个接口,主要是手机端通过接口上传图片到服务器。
客户端测试代码如下:
public static void main(String[] args) {
String fileName = "c:/t_client.png";
String sUrl = "http://192.168.1.100:8080/lbs/recClientFile.action" ;
SendData sd = new SendData();
sd.sendFileToServer(fileName, sUrl);
}
public void sendFileToServer(String fileName,String sUrl){
File file = new File(fileName);
try {
URL url = new URL(sUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setUseCaches(false);
conn.setDoOutput(true);
conn.setDoInput(true);
// conn.setRequestProperty("Content-Type", "multipart/form-data"); 更改成下边的就行了
conn.setRequestProperty("Content-Type","text/html");
ByteArrayOutputStream bos = new ByteArrayOutputStream();
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
int len ;
while( (len = bis.read()) > -1 ){
bos.write(len);
}
byte fileData [] = bos.toByteArray();
DataOutputStream dos = new DataOutputStream(conn.getOutputStream());
dos.write(fileData);
dos.flush();
dos.close();
bis.close();
bos.close();
conn.disconnect();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
服务器端,struts2的一个action方法
public String recClientFile(){
try {
InputStream is = request.getInputStream();
FileOutputStream fos = new FileOutputStream("c:/t_server.png");
int len ;
byte buffer [] = new byte[1024];
while( (len = is.read(buffer)) > -1 ){
fos.write(buffer, 0, len);
}
fos.close();
is.close();
System.err.println("rec the img from client over ! ");
} catch (IOException e) {
e.printStackTrace();
}
return null ;
}
tomcat服务器一直启动着,然后客户端访问即可。
上边的都是测试代码,需要的话,只用改动下即可。
注意的是,使用struts2接收文件的时候,客户端需要设置的content-type应该是text/html。因为struts2已经对此处理过了。
分享到:
相关推荐
总结来说,这个源码包展示了Android客户端如何使用HTTP POST请求上传文件到Struts2服务端,以及服务端如何接收和处理这些文件。这涵盖了Android网络编程、文件操作、Struts2框架以及可能的跨平台通信技术。对于学习...
总之,Android客户端通过HTTP请求将文件上传到使用Struts2框架的Java服务器,服务端接收到文件后进行处理并返回响应。这个过程涉及到Android的网络编程、文件操作,以及Java的Web服务开发,对开发者的要求是全面的。
你可以通过分析Action类、Interceptor、配置文件(struts.xml)等内容,深入理解Struts2如何与Servlet协同工作,完成文件的上传下载操作。此外,还可能涉及到异常处理、文件路径管理、安全性(防止恶意文件上传)等...
根据提供的文件信息,我们可以归纳出以下几个关键的知识点:Struts2框架、Hibernate3.3、J2SE(Java 2 Platform Standard Edition)以及与网络游戏相关的开发技术。 ### Struts2框架 #### 概述 Struts2是Apache ...
使用Spring Boot、Spring Cloud等Java框架,可以简化服务端开发,快速集成文件上传功能。 8. **测试与调试**: 对于微信小程序的文件上传功能,需要进行多环境(开发、测试、生产)的测试,确保在不同环境下都能...
通过两种调用方式——直接调用服务端Java类和通过HTTP SOAP协议调用——展示了灵活的服务访问机制。 3. **使用C#实现PIM,整合.NET与Java技术** 最后一个案例使用C#实现PIM系统,旨在展示.NET与Java技术的集成,...
使用Java Swing构建个人信息管理系统,通过WebService处理图像文件上传和Resultset对象传输,展示了 Axis2 在客户端应用程序中的使用。 - **项目二:Struts 2.1.6 PIM**: 使用Struts 2框架实现Web版PIM,展示...
- **实现方式**:通过.NET客户端调用Java服务端提供的WebService接口。 #### 四、Axis2安装与配置 - **下载资源**:访问[Apache Axis2官网](http://ws.apache.org/axis2/)获取最新版本的Axis2。 - **安装包介绍**...
该项目旨在展示Java和.NET技术的集成,通过C#客户端调用Java服务端的Web服务,实现跨平台的应用协作。 通过这些项目,学员不仅学习了Axis2的基本操作,还了解了如何根据实际需求选择合适的技术栈,以及如何在不同...
- **端点(Endpoint)**:端点是服务器端的特定位置,客户端可以通过它向服务端发送消息或接收响应。 - **消息(Message)**:消息是客户端和服务端之间传递的数据包,它可以包含远程过程调用或事件通知等信息。 - **...
- **Struts 2.1.6实现的Web版PIM**:探讨了如何在Web应用中嵌入WebService,既可以直接调用服务端的Java类,也可以通过HTTP SOAP协议远程调用。 - **C#实现的PIM**:展示了Java和.NET技术的结合,演示了跨平台的...
Struts通过配置文件(struts-config.xml或struts.xml)定义Action映射,控制流程。使用Struts可以方便地处理HTTP请求,进行表单验证,以及与后端数据库交互。 在实际应用中,Servlet和Struts常常结合使用,Servlet...
将生成的公钥文件复制到另一个文件,并通过FTP方式上传到远程主机。 7. **在远程主机上设置免密码登录:** 将客户端生成的公钥添加到远程主机用户的`.ssh2/authorized_keys`文件中,这样就可以实现免密码登录了。...
Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多...
- Struts2可以通过插件或自定义配置来支持RESTful风格的服务接口。 - 通过URL映射、请求参数解析等功能,使得RESTful服务更加灵活。 6. **三大框架的整合**: - 整合三大框架可以实现前后端分离的设计模式,提高...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...