客户端代码
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/*
* @author xk
* 上传文件到文件服务器的客户端
*/
public class FileUploadClient{
public static void main(String[] args) {
try {
// URL url = new URL("http://127.0.0.1:8888/fileSys/getFile.action?filePath=/c/v/b/&fileName=test.zip");
URL url = new URL("http://127.0.0.1:8888/fileSys/getFile.action?filePath=/c/v/b/&fileName=test.zip");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type","text/html");
conn.setRequestProperty("Cache-Control","no-cache");
conn.setRequestProperty("Charsert", "UTF-8");
conn.connect();
conn.setConnectTimeout(10000);
OutputStream out =conn.getOutputStream();
File file = new File("C:\\fileSys\\test.zip");
DataInputStream in = new DataInputStream(new FileInputStream(file));
int bytes = 0;
byte[] buffer = new byte[1024];
while ((bytes = in.read(buffer)) != -1) {
out.write(buffer, 0, bytes);
}
in.close();
out.flush();
out.close();
conn.getInputStream();
conn.disconnect();
} catch (Exception e) {
System.out.println("发送文件出现异常!" + e);
e.printStackTrace();
}
}
}
服务端代码,接收文件
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;
import com.property.PropertyUtil;
public class GetFileAction extends ActionSupport {
private static final long serialVersionUID = -9108080625441081032L;
public String execute() throws Exception
{
String rootPath = PropertyUtil.getProperty("fileSys.properties","fileSys.path");
HttpServletRequest request = ServletActionContext.getRequest();
String filePath = request.getParameter("filePath");
String fileName = request.getParameter("fileName");
InputStream input = request.getInputStream();
String fileFullPath = rootPath + filePath + fileName;
File file = new File(rootPath + filePath);
if(!file.exists()){
file.mkdirs();
}
FileOutputStream fos = new FileOutputStream(fileFullPath);
int size = 0;
byte[] buffer = new byte[1024];
while ((size = input.read(buffer,0,1024)) != -1) {
fos.write(buffer, 0, size);
}
fos.close();
input.close();
return Action.NONE;
}
}
分享到:
相关推荐
在本文中,我们将深入探讨如何使用HttpURLConnection实现文件上传,同时也会涉及普通参数的传递。 首先,我们需要理解HTTP请求的基本结构。HTTP请求通常由以下几个部分组成:请求行、请求头、空行和请求体。在文件...
在Android应用开发中,有时需要将本地文件上传到服务端,并在上传过程中向用户展示进度条,以便用户了解上传状态。本篇文章将详细介绍如何实现这一功能。 首先,我们需要使用`HttpURLConnection`类来处理网络请求。...
综上所述,Android上传文件到服务端涉及到网络请求、文件读取、请求体构建、发送请求及处理响应等多个环节。通过使用像`OkHttp`这样的库,可以简化这些操作,让开发者更专注于业务逻辑。在这个案例中,...
以上就是使用`HttpURLConnection`在Android客户端上传文件到服务器的基本流程。注意,实际开发中可能还需要处理更多细节,比如异常处理、网络权限申请、文件大小限制、进度显示等。在大型项目中,可能还会选择使用...
本篇将详细讲解如何实现Android客户端上传文件以及Struts2服务端接收的过程。 首先,让我们从Android客户端开始。在Android中,文件上传主要涉及`HttpURLConnection`或`OkHttp`库,通过POST请求将文件内容发送到...
3. 文件存储:将接收到的文件内容保存到服务器的某个位置,可能需要考虑临时文件管理、重命名策略等。 4. 业务处理:对上传的文件进行验证(如文件类型、大小)、业务逻辑处理(如保存到数据库、进行处理等)。 在...
而`jyWebService`可能是一个服务端接口,接收并处理来自`jyWebClient`的上传请求。 总的来说,这个场景涉及到了Java网络编程、HTTP协议、文件操作、流处理、线程调度等多个知识点。理解并熟练掌握这些技能对于进行...
服务端部分则在"FileUpAndDown"中,服务器接收来自客户端的文件并将其存储在服务器的磁盘上,或者可能是云存储服务如SAE(新浪应用引擎)。在Java中,服务端可能使用Servlet或Spring MVC等框架来处理HTTP请求。当...
总之,Android客户端通过HTTP请求将文件上传到使用Struts2框架的Java服务器,服务端接收到文件后进行处理并返回响应。这个过程涉及到Android的网络编程、文件操作,以及Java的Web服务开发,对开发者的要求是全面的。
2. **存储图片**:接收到图片数据后,服务端需要将其保存到文件系统、云存储(如AWS S3)或数据库。在保存时,可能需要为图片命名、生成缩略图,以及设置访问权限。 3. **返回响应**:服务端在成功接收并处理图片后...
4. **服务端处理**:服务端接收到PDF后,可能需要进行进一步的处理,比如存储文件、调用打印服务。这取决于具体的服务器架构和语言,如Java、Python、Node.js等。服务器端可能需要有处理PDF和调用打印机API的能力。 ...
- 当所有文件都添加到请求后,通过HttpURLConnection的connect()方法建立连接。 - 调用finishWriting()方法,如setDoOutput(true)和flush(),确保所有数据都被发送。 - 最后,关闭输入/输出流,以避免资源泄漏。 ...
服务端通常需要解析接收到的POST请求,从中提取文件流,然后保存到服务器的特定位置。服务端代码可能涉及Servlet或JSP技术,其中JSP(JavaServer Pages)是一种动态网页技术,可以方便地与Java后端逻辑结合。 3. ...
总结起来,Android上传图片到服务端的过程主要包括:从相册选择图片、读取图片并转换为二进制数据、创建HTTP POST请求发送图片,以及服务端接收并保存图片。在这个过程中,需要注意网络请求的错误处理、文件的大小...
- 服务端通常使用Java、Python、Node.js等后端语言开发,需要实现接收文件上传的接口,解析接收到的文件流,保存到服务器硬盘,并返回上传状态。 - 需要处理多线程接收、文件完整性校验、权限控制等问题。 7. **...
6. **文件流操作**:在服务器端接收到文件后,可以将其保存到硬盘。文件流的处理是关键,确保正确地读取客户端发送的文件流,并将其写入服务器的指定位置。使用`InputStream`和`OutputStream`进行操作,并注意关闭流...
1. **解析请求**:服务端接收到请求后,使用`ServletInputStream`读取请求体,解析multipart/form-data格式的数据。`Commons FileUpload`库是一个常用的解析工具,它可以处理边界和编码问题。 2. **文件保存**:...
3. **存储文件**:接收到文件后,服务器将其保存到指定位置,可以是本地磁盘、云存储服务如AWS S3或Google Cloud Storage。 4. **响应客户端**:服务器处理完文件上传后,返回一个JSON或其他格式的响应,告知客户端...
4. 服务端接收到请求,解析Part数据,保存文件到服务器。 5. 服务端返回响应,客户端解析响应,根据状态码显示上传结果。 以上就是这个源码涉及到的主要技术点。通过学习和实践,开发者不仅可以了解Android客户端与...
服务器端接收到POST请求后,会解析请求体中的数据并进行相应的处理。服务器可能返回HTTP状态码(如200表示成功,400表示错误),以及可能包含有用信息的响应体。Java客户端可以通过读取`HttpResponse`或`...