服务器端实现文件的上传和下载

import java.io.BufferedReader;

import java.io.File;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.net.URL;

import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.client.HttpClient;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.entity.mime.MultipartEntity;

import org.apache.http.entity.mime.content.FileBody;

import org.apache.http.impl.client.DefaultHttpClient;

/**

* 文件上传和下载

* @author 20170323

*

*/

public class FileNetUploadAndDownload {

/**

* 文件上传

* @param String 文件上传路径

* @param String 文件本地路径

* @return

* @throws Exception

*/

public String fileUpload(String urlPath,String fileLocation) throws Exception{

String res = "";

//建立连接客户端

HttpClient httpclient = new DefaultHttpClient();

//连接服务器

HttpPost httppost = new HttpPost(urlPath);

//加载文件

FileBody file = new FileBody(new File(fileLocation));

//初始化加载器?

MultipartEntity reqEntity = new MultipartEntity();

//加载文件

reqEntity.addPart("file", file);

//加载加载器

httppost.setEntity(reqEntity);

//准备发送数据(??)

HttpResponse response = httpclient.execute(httppost);

//准备发送数据(??)

HttpEntity httpEntity = response.getEntity();

//生成流

BufferedReader br = new BufferedReader(new InputStreamReader(httpEntity.getContent(), "UTF-8"));

StringBuffer backData = new StringBuffer();

String line = null;

//发送

while ((line = br.readLine()) != null) {

backData.append(line);

}

res = backData.toString();

System.out.println(res);

return res;

}

/**

* 文件下载

* @param String 下载路径

* @param String 文件名

* @param String 本地存储路径

* @return

* @throws Exception

*/

public String fileDownload(String fileNetPath,String FileName,String UpFilePath) throws Exception{

//连接服务器

URL url = new URL(fileNetPath);

//生成流

InputStream is = url.openStream();

//生成本地文件

UpFilePath +="/"+FileName;

File outFlie = new File(UpFilePath);

if(!outFlie.getParentFile().exists()){

outFlie.getParentFile().mkdir();

}

if(!outFlie.exists()){

outFlie.createNewFile();

}

OutputStream output = new FileOutputStream(outFlie);

int temp = 0;

//写入文件

while((temp = is.read()) != -1){

output.write(temp);

}

is.close();

output.close();

System.out.println(is);

return UpFilePath;

}

}

时间: 2024-11-29 12:25:43

服务器端实现文件的上传和下载的相关文章

【php】文件的上传与下载

一. 生活中常见的地方: a) 例如邮箱.空间.文库.百度云.微爱等地方,都可以看到文件的上传和下载的应用,因此,上传和下载的功能非常重要!二. PHP当中的文件上传和下载 a) 我们需要进行一些设置,来使我们的表单具有提交文件的功能! b) 客户端的设置: i. 其实就是表单的设置: 1. input表单项中的type属性值必须是file类型 2. form表单头部需要添加一个通行证:enctype="multipart/form-data",含义为让服务器认识到我们要在这个表单中上

SpringMVC实现文件的上传和下载

前些天一位江苏经贸的学弟跟我留言问了我这样一个问题:"用什么技术来实现一般网页上文件的上传和下载?是框架还是Java中的IO流".我回复他说:"使用SpringMVC框架可以做到这一点,因为SpringMVC为文件的上传提供了直接的支持,但需要依赖Apache提供Commons FileUpload组件jar包."鉴于这个问题,我上网也百度了一下,网上很多都是介绍的使用IO流来实现文件的上传和下载,也有说到框架的,但介绍的并不是很完整,今天小钱将和大家介绍使用Spr

iOS开发中文件的上传和下载功能的基本实现-备用

感谢大神分享 这篇文章主要介绍了iOS开发中文件的上传和下载功能的基本实现,并且下载方面讲到了大文件的多线程断点下载,需要的朋友可以参考下 文件的上传 说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代码. 主控制器的关键代码: 复制代码代码如下: YYViewController.m#import "YYViewController.h" #define YYEnc

文件的基本操作二与文件的上传和下载 (45)

访问远程文件 ??如果需要访问远程文件,必须在PHP的配置文件中激活“allow_url_fopen”选项,才能使用fopen( )函数打开运程文件.而且还要确定其他服务器中的文件是否访问权限,如果使用PHP协议对远程文件进行链接,只能以“只读”模式打开.如果需要访问的远程FTP服务器中,对所提供的用户开启了“可写”权限,则使用FTP协议链接远程的文件时,就可以使用“只写”或“只读”模式打开文件.但不可以使用“可读可写”的模式.??使用PHP访问远程文件就像访问本地文件一样,都是使用相同的读写函

黏包-黏包的成因、解决方式及struct模块初识、文件的上传和下载

黏包: 同时执行多条命令之后,得到的结果很可能只有一部分,在执行其他命令的时候又接收到之前执行的另外一部分结果,这种显现就是黏包. 只有TCP协议中才会产生黏包,UDP协议中不会有黏包(udp协议中数据会直接丢失,俗称丢包) #面试 #首先只有在TCP协议中才有黏包现象,是因为TCP协议是面向流的协议, #在发送的数据传输的过程中还有缓存机制来避免数据丢失 #因此在连续发送小数据的时候,以及接收大小不符的时候,都容易产生黏包现象 #本质是不知道客户端发送的数据长度 面试中解释黏包 #连续send

Spring MVC 实现文件的上传和下载

文件上传是项目开发中最常见的功能.为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data.只有在这样的情况下,浏览器才会把用户选择的文件以二进制数据发送给服务器. 一旦设置了enctype为multipart/form-data,浏览器即会采用二进制流的方式来处理表单数据,而对于文件上传的处理则涉及在服务器端解析原始的HTTP响应.在2003年,Apache Software Foundation发布了开源的Commons File

使用Loadrunner进行文件的上传和下载

最近使用loadrunner中需要录制文件的上传和下载,上传功能模块利用录制可以直接实现,下载无法实现,在网上找到了一段代码,自己动手试验了下,发现没有用 辛苦找到的,还是记录下吧 (1)LoadRunner上传文件 web_submit_data("importStudent.do", "Action=https://testserver/console/importStudent.do", "Method=POST", "EncTy

【Linux命令】--(4)文件打包上传和下载

文件打包上传和下载 +++++++++++++++++++++++++++++++用SecureCRT来上传和下载文件tar命令gzip命令+++++++++++++++++++++++++++++++先把计划放着,待老夫国庆把它学完!

SecureCRT使用sz和rz命令进行文件的上传和下载

SecureCRT可以使用sz和rz命令进行文件的上传和下载. sz文件下载: 格式:sz 文件名称 即可将服务器的文件下载至本地. rz文件上传: 格式:rz 文件名称 即可将本地文件上传至服务器. 本地文件夹可以通过Options-->Session Options中进行设置.