码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2017-05-07 14:00:56      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:output   ati   连接   下载   out   write   exce   app   default   

 

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;

    }

}

 

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

标签:output   ati   连接   下载   out   write   exce   app   default   

原文地址:http://www.cnblogs.com/lolly/p/6642255.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!