zoukankan      html  css  js  c++  java
  • java文件保存至服务器

    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;

    public class ImageRequest{

    /**
    * 读取网络图片并保存至服务器硬盘中
    * @param imgUrl
    * @return 图片保存的服务器路径
    */
    public static String getImages(String imgUrl){
    String imgPath = "";
    try{
            //new一个URL对象
            URL url = new URL(imgUrl);
            //打开链接
            HttpURLConnection conn = (HttpURLConnection)url.openConnection();
            //设置请求方式为"GET"
            conn.setRequestMethod("GET");
            //超时响应时间为5秒
            conn.setConnectTimeout(5 * 1000);
            //通过输入流获取图片数据
            InputStream inStream = conn.getInputStream();
            //得到图片的二进制数据,以二进制封装得到数据,具有通用性
            byte[] data = readInputStream(inStream);
            imgPath = ImageRequest.class.getClassLoader().getResource("").getPath();
            imgPath = imgPath.split("WEB-INF")[0];
            imgPath = imgPath+"images/"+"haha.jpg";
            //new一个文件对象用来保存图片,默认保存当前工程根目录
            File imageFile = new File(imgPath);
            //创建输出流
            FileOutputStream outStream = new FileOutputStream(imageFile);
            //写入数据
            outStream.write(data);
            //关闭输出流
            outStream.close();
            //服务器文件路径
            imgPath = imgPath.split("WebRoot")[1];
            System.out.println(imgPath);
    }catch(Exception e){e.printStackTrace();}
    return imgPath;
    }
       
    /**
    * 读取文件流
    * @param inStream
    * @return
    * @throws Exception
    */
        public static byte[] readInputStream(InputStream inStream) throws Exception{
            ByteArrayOutputStream outStream = new ByteArrayOutputStream();
            //创建一个Buffer字符串
            byte[] buffer = new byte[1024];
            //每次读取的字符串长度,如果为-1,代表全部读取完毕
            int len = 0;
            //使用一个输入流从buffer里把数据读取出来
            while( (len=inStream.read(buffer)) != -1 ){
                //用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度
                outStream.write(buffer, 0, len);
            }
            //关闭输入流
            inStream.close();
            //把outStream里的数据写入内存
            return outStream.toByteArray();
        }
       
        public static void main(String[] args) throws Exception {
        ImageRequest.getImages("http://image.meilele.com/images/201311/1385338928366387259.jpg");
        }

    }

  • 相关阅读:
    hdu 1455 N个短木棒 拼成长度相等的几根长木棒 (DFS)
    hdu 1181 以b开头m结尾的咒语 (DFS)
    hdu 1258 从n个数中找和为t的组合 (DFS)
    hdu 4707 仓鼠 记录深度 (BFS)
    LightOJ 1140 How Many Zeroes? (数位DP)
    HDU 3709 Balanced Number (数位DP)
    HDU 3652 B-number (数位DP)
    HDU 5900 QSC and Master (区间DP)
    HDU 5901 Count primes (模板题)
    CodeForces 712C Memory and De-Evolution (贪心+暴力)
  • 原文地址:https://www.cnblogs.com/taleche/p/4509525.html
Copyright © 2011-2022 走看看