精华内容
下载资源
问答
  • 下载信息内容时文件名称的指定

    千次阅读 2004-10-21 20:52:00
    问题的提出 互联网的发展为我们的生活带来了巨大变化,越来越多的人乐意享受网上便捷的服务,诸如... ● 每一项信息内容要有独立的下载权限控制,能下载某一项信息的用户,不一定能够下载另一项信息; ● 从用户的角度

    问题的提出

    互联网的发展为我们的生活带来了巨大变化,越来越多的人乐意享受网上便捷的服务,诸如网上购物、网上订票等。其中突出的一类服务是信息内容下载服务,包括音乐、参考资料、试用软件的下载等。通常,信息内容下载服务有以下要求: 

    ● 能够下载的用户必须有访问信息内容的权限;

    ● 每一项信息内容要有独立的下载权限控制,能下载某一项信息的用户,不一定能够下载另一项信息;

    ● 从用户的角度来说,下载时文件名应该保持为下载信息内容的实际名称。

    实际上,若采用通常的开发方法,上述三点较难同时满足:通过脚本(如ASP)进行权限控制,可能会使下载文件名变成了脚本名;若想保留下载文件名,可能权限无法控制。本文将从HTTP协议、Web服务器出发,结合目前比较流行的Web开发方法(Java、ASP)来说明如何实现上述要求。

    问题的解决

    有多种方法可以解决这个问题,下面介绍其中的两种:

    第一种方法 直接虚拟路径法

    直接虚拟路径法是指在下载URL中直接给出文件名,并在文件名前设置虚拟路径名(必须保证通过该路径是访问不到文件的)。这样,浏览器显示的下载名是原文件名,而非法用户因路径不存在,无法得到文件。

    这种方法主要利用Web服务器的映射(MAP)功能,实现思路是:

    ● 由Web服务器接收用户的下载URL请求,将虚拟路径映射(MAP)为相应的服务器程序调用(该程序要独立开发);

    ● 服务器程序验证用户的权限,若非法则拒绝服务;

    ● 服务器程序从HTTP的响应变量HTTP_

    PATH_INFO中得到文件名,并通过事先的配置取得实际路径名;

    ● 服务器程序将文件内容用流的方式读出,供合法用户下载。

    不同的Web服务器对编写的服务器程序也是不一样的。IIS中可以用过滤器(Filter)实现,而Java服务器则可以使用Servlet。下面是用Servlet(Download)实现的例子:

    public void doGet(HttpServletRequest request,

    HttpServletResponse response)

     throws ServletException,IOException

    {

    String dir_info=“c:/temp”;

    try

    {

    HttpSession session = request. getSession(false);

    if (session==null)

    //作为示例,简单权限判别

    {

      response.getWriter().println(“有以

    下错误:[1000]没有权限”);

      return;

    }

    String path_info=request. getPathInfo();  //不同的服务器可能处理不同

    if (path_info==null || path_info. trim(). length()==0)

    {

      response.getWriter().println(“有以

    下错误:[2000]未提供文件名”);

      return;

    }

    String full_path = dir_info + path_info;

    FileInputStream in = new FileInputStream(full_path);

    response.setContentType(“bin”);

    ServletOutputStream out = response.getOutputStream();

    int b;

    while ((b=in.read())!=-1)

    {

      out.write(b);

    }

    in.close();

    }

    catch(Exception e)

    {

      return;

    }

    }

    可通过Http://localhost/servlet/Download/test. zip来下载c:/temp/test. zip文档。

    第二种方法 间接路径法

    间接路径法是指下载URL中不出现待下载文件名,下载URL主要用于实现权限控制,而在参数中提供文件名。这时,浏览器显示的下载名将不是实际下载文件名,而是用于权限控制的服务器程序的名称,必须将其名称改为原文件名。

    这种方法主要利用HTTP头部响应协议(Http Header)来实现,其思路是:

    1. 权限控制URL服务器程序验证用户的权限,若非法则拒绝服务。

    2. 服务器程序从HTTP的参数变量中得到文件名,并通过事先的配置取得实际路径名。

    3. 服务器程序利用HTTP响应头Content-disposition(详细说明可以参见rfc2183),设置下载文件名,如下所示:

    Content-disposition: attachment; filename=下载文件名

    4. 服务器程序将文件内容用流的方式读出,供合法用户下载。

    这里的服务器程序可以是CGI、Servlet、JSP、ISAPI、ASP等。下面是用ASP实现的例子:

    <%

    Response.buffer = TRUE

     dim strDir,strFullPath,strName

     Dim vntStream

     strDir=“c:/temp/”

     if Session(“Download”)=“” then

    ’作为示例,简单权限判别

       Response.write(“有以下错误:[1000]没

    有权限”)

       Response.end

      end if

      if Request(“filename”)=“” then

       Response.write(“有以下错误:[2000]未

    提供文件名”)

       Response.end

      end if

      strName = Request(“filename”) strFullPath = strDir + strName Response.ContentType =“BIN”

    ’设置下载文件名

      Response.addHeader“Content-disposition”, “attachment; filename=”& strName

      Set oMyObject = Server.CreateObject(“MyObject. BinRead”) 

    ’可自行开发的二进制读取对象

      vntStream = oMyObject. readBinFile(strFullPath)

      Response.BinaryWrite(vntStream)

      Set oMyObject = Nothing Response.End

    %>

    可通过Http://localhost/Download.asp?filename=test.zip来下载c:/temp/test.zip文档。

    此外,还可以利用操作系统中的功能来实现,但与系统关系太密切,不适于移植,除非该服务器是专门用来下载的,就不在此说明了。

    展开全文
  • * 根据URL下载文件,前提是这个文件当中的内容是文本,函数的返回值就是文件当中的内容 1.创建一个URL对象 * 2.通过URL对象,创建一个HttpURLConnection对象 3.得到InputStram 4.从InputStream当

    1. 简单版本

    	/**
    	 * 根据URL下载文件,前提是这个文件当中的内容是文本,函数的返回值就是文件当中的内容 1.创建一个URL对象
    	 * 2.通过URL对象,创建一个HttpURLConnection对象 3.得到InputStram 4.从InputStream当中读取数据
    	 * 
    	 * @param urlStr
    	 * @return
    	 */
    	public String getTextFromUrl(String urlStr) {
    		StringBuffer sb = new StringBuffer();
    		String line = null;
    		BufferedReader buffer = null;
    		try {
    			// 创建一个URL对象
    			url = new URL(urlStr);
    			// 创建一个Http连接
    			HttpURLConnection urlConn = (HttpURLConnection) url
    					.openConnection();
    			// 使用IO流读取数据
    			buffer = new BufferedReader(new InputStreamReader(
    					urlConn.getInputStream()));
    			while ((line = buffer.readLine()) != null) {
    				sb.append(line);
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				buffer.close();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    		return sb.toString();
    	}

    2. 发送http信息,并信息进行编码

    	//发送http信息,并信息进行编码
    	public String SendDataPost(String url, String post)
        {
    		// 判断网络链接是否正常
    		if (isNetworkAvailable(fromcon)) {
    			try
    			{
    				String	mString = new String(post.getBytes(), "UTF-8");
    				URL iurl = new URL(url);//直接提交地址,不要带参数        
    				HttpURLConnection objConn = (HttpURLConnection)iurl.openConnection();
    				//objConn.setRequestProperty("Cookie",HttpTools.PublishCookies());
               
    				objConn.setDoOutput(true);
    				objConn.setDoInput(true);
    				objConn.setRequestProperty("Content-type","application/x-www-form-urlencoded");
    				objConn.setRequestMethod("POST");
    				objConn.setRequestProperty("Content-Length",String.valueOf(mString.toCharArray().length));
    				objConn.setConnectTimeout(30000);
    	            objConn.setReadTimeout(30000);
    	            objConn.connect();
    				
    	            OutputStream  objSM = objConn.getOutputStream();
    	            OutputStreamWriter objSW = new OutputStreamWriter(objSM);
    	            BufferedWriter  out = new BufferedWriter(objSW);
                           
    	            out.write(mString.toCharArray(),0,mString.toCharArray().length);
    	            out.flush();
    	            out.close();
                
    	            InputStream objSMP = objConn.getInputStream();
    	            InputStreamReader objSRP = new InputStreamReader(objSMP, "utf-8");
    	            BufferedReader in = new BufferedReader(objSRP);  
    	            String line = null;  
    	            StringBuilder sb = new StringBuilder();  
    	            while ((line = in.readLine()) != null) {  
    	              sb.append(line);  
    	            }  
    	            in.close(); 
    	            String resp = sb.toString();
    	            objSMP.close();
    	            objConn.disconnect();
    	            return resp;
    			}catch (Exception ex) {
    	       	 	Log.i("CCCC", ex.toString());
    	            return "";
    	        }
    		}else{
    		
    			Intent intent0 = new Intent(fromcon,
    				LoginActivity.class);
    			intent0.putExtra("msg",
    				"您当前网络连接已禁用,请重新设置!");
    			fromcon.startActivity(intent0);
    			return "";
    		}
        }
    	
    	// 判断网络是否正常
    	public static boolean isNetworkAvailable(Context context) {
    		ConnectivityManager connectivity = (ConnectivityManager) context
    				.getSystemService(Context.CONNECTIVITY_SERVICE);
    		if (connectivity == null) {
    			
    			return false;
    		} else {
    			NetworkInfo info = connectivity.getActiveNetworkInfo();
    			if (info == null) {
    				
    				return false;
    			} else {
    				if (info.isAvailable()) {					
    					return true;
    				}
    			}
    		}
    		
    		return false;
    	}


    展开全文
  • Java携带HTTP头信息下载网络图片

    千次阅读 2019-03-12 10:48:27
    Java携带HTTP头信息下载网络图片 网络图片下载校验一般分两种情况: 1、校验Reffer头信息,即只有指定的网站的才能访问图片 2、校验Cookie头信息,即只有登录状态才能访问图片 如下图直接通过url访问返回:{"code...

    Java携带HTTP头信息下载网络图片

    网络图片下载校验一般分两种情况:
    1、校验Reffer头信息,即只有指定的网站的才能访问图片
    2、校验Cookie头信息,即只有登录状态才能访问图片
    如下图直接通过url访问返回:{"code":"40310014","msg":"invalid Referer header"}

    原http访问图片携带了Reffer

    工具代码 

    /**
    	 * 携带头信息下载网络图片
    	 * @param url 图片url
    	 * @param formatName 文件格式名称
    	 * @param localFile 下载到本地文件
    	 * @param headers http协议交互中header信息,如Cookie
    	 * @return 下载是否成功
    	 */
    	public static boolean downloadImageWithHeaders(String imageUrl, String formatName, File localFile, Map<String, String> headers) {
    		boolean isSuccess = false;
    		InputStream stream = null;
    		try {
    			URL url = new URL(imageUrl);
    			URLConnection conn = url.openConnection();
    			if (headers != null && !headers.isEmpty()) {
    				//设置头信息
    				for (Map.Entry<String, String> entry : headers.entrySet()) {
    					conn.setRequestProperty(entry.getKey(), entry.getValue());
    				}
    			}
    			conn.setDoInput(true);
    			stream = conn.getInputStream();
    			BufferedImage bufferedImg = ImageIO.read(stream);
    			if (bufferedImg != null) {
    				isSuccess = ImageIO.write(bufferedImg, formatName, localFile);
    			} else {
    				throw new RuntimeException("图片[" + imageUrl + "]下载失败");
    			}
    		} catch (MalformedURLException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			if (stream != null) {
    				try {
    					stream.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    		}
    		return isSuccess;
    	}

    测试代码

    /**
    	 * 测试携带请求头
    	 */
    	@Test
    	public void testDownloadImageWithHeaders() {
    		String baiduLogoUrl = "http://pic.58pic.com/58pic/15/68/59/71X58PICNjx_1024.jpg";
    		File localFile = new File(IMAGE_PATH + "scenery.jpg");
    		Map<String, String> headers = new HashMap<String, String>();
    //		headers.put("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
    //		headers.put("Accept-Encoding", "gzip, deflate");
    //		headers.put("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8");
    //		headers.put("Cache-Control", "max-age=0");
    //		headers.put("Connection", "keep-alive");
    //		headers.put("Cookie", "referer=%22https%3A%5C%2F%5C%2Fwww.58pic.com%5C%2Ftupian%5C%2FBMP.html%22; qt_visitor_id=%228d800369135f0ea407efc30c35b855c0%22; qt_uid=0; qt_type=0; user-browser=%22baidu%22; history_search=%22%7B%5C%22BMP_%5C%22%3A%5C%22%5C%5C%5C%2Ftupian%5C%5C%5C%2FBMP.html%5C%22%7D%22; awake=0; qiantudata2018jssdkcross=%7B%22distinct_id%22%3A%2216956b4d4b859f-0f2dc330b57f7c-3a3a5c0e-2073600-16956b4d4b92bd%22%2C%22props%22%3A%7B%22latest_traffic_source_type%22%3A%22%E8%87%AA%E7%84%B6%E6%90%9C%E7%B4%A2%E6%B5%81%E9%87%8F%22%2C%22latest_referrer%22%3A%22https%3A%2F%2Fwww.baidu.com%2Flink%22%2C%22latest_referrer_host%22%3A%22www.baidu.com%22%2C%22latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC%22%7D%7D; qt_utime=1551937913; FIRSTVISITED=1551937885.528; showAd:8d800369135f0ea407efc30c35b855c0=%22w6SIEgLKiJOIC5HVD3fKoJHKodaWmZy8mtm4zJbLytqWn5vMyZmWyZm4yJG4nwmWiIWIywr5zxj3AxnLCL2Pzci9iJeIlcj3DxjUiJOImsiSiNnOB6DFDgLTzxmIoJmSiMXHC6rFC5HVD423Aw4LiJOXntuXotm6ote3Fv3%3D%22");
    //		headers.put("Host", "pic.58pic.com");
    //		headers.put("If-Modified-Since", "Tue, 22 Jul 2014 15:40:16 GMT");
    //		headers.put("If-None-Match", "ae01753237194fa9a5badf2d90fd20d6");
    		headers.put("Referer", "http://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=%E5%9B%BE%E7%89%87&step_word=&hs=0&pn=0&spn=0&di=107250&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=undefined&cs=1986179278%2C1118313821&os=1011800134%2C3605107432&simid=3440756675%2C361207036&adpicid=0&lpn=0&ln=1765&fr=&fmq=1552355383195_R&fm=&ic=undefined&s=undefined&hd=undefined&latest=undefined&copyright=undefined&se=&sme=&tab=0&width=undefined&height=undefined&face=undefined&ist=&jit=&cg=&bdtype=0&oriquery=&objurl=http%3A%2F%2Fpic.58pic.com%2F58pic%2F15%2F68%2F59%2F71X58PICNjx_1024.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bcbrtv_z%26e3Bv54AzdH3Ffitstwg2p7AzdH3F8cmbcl08_z%26e3Bip4s&gsm=0&rpstart=0&rpnum=0&islist=&querylist=&force=undefined");
    //		headers.put("Upgrade-Insecure-Requests", "1");
    //		headers.put("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36");
    		Assert.assertTrue(ImageUtil.downloadImageWithHeaders(baiduLogoUrl, ImageUtil.JPG, localFile, headers));
    	}

    完整源码:https://github.com/ConstXiong/xtools

     


    【Java面试题与答案】整理推荐

     

    展开全文
  • 短信平台 下载 c#

    千次阅读 2011-03-31 13:45:00
    今天上传了短信平台为各位朋友做参考   内容包括: CMPP2.0短信客户端程序 SGIP1.2短信客户端程序 SMGP3.0短信客户端程序 ...下载地址: http://download.csdn.net/detail/adama119/4189313 (包含接口源代码)

    今天上传了短信平台为各位朋友做参考

     

    内容包括:

    CMPP2.0短信客户端程序

    SGIP1.2短信客户端程序

    SMGP3.0短信客户端程序

    SQL2005脚本

    简单的短信管理平台(WEB)

     

    支持普通短信、长短信、WAPPUSH

     

    下载地址:

    http://download.csdn.net/detail/adama119/4189313  (包含接口源代码)

    http://download.csdn.net/source/3144885

     

    需要的朋友可以自行下载做参考。如有疑问请发至:spf193@gmail.com

    展开全文
  • 最新超详细VMware虚拟机下载与安装

    万次阅读 多人点赞 2018-05-29 19:43:54
    VMware下载与安装 一、虚拟机的下载 1.进入VMware官网,点击左侧导航栏中的下载,再点击图中标记的Workstation Pro,如下图所示。 2.根据操作系统选择合适的产品,在这里以Windows系统为例,点击转至下载,如...
  • JDK1.8下载、安装和环境配置教程

    万次阅读 多人点赞 2019-08-09 19:29:13
    一、下载安装包 1. JDK1.8百度云下载路径: 链接:https://pan.baidu.com/s/1ozCGy53AIeQIHWL6s9oAbw 提取码:04lf 网盘放的是jdk1.8版本中的1.8.0_152的版本 2.如果大家想下载别的版本,可以去官网:...
  • 今天排查一个问题,需要将10.10系统的Mac升级到10.15,过程遇到了这个问题,解决方法很简单,就是将之前有问题的缓存信息清除,重新申请下载,操作步骤如下: 一、进入目录/var/folders中,可以使用如下方式: ...
  • SQL Server 下载安装教程

    万次阅读 多人点赞 2018-10-07 22:26:15
    SQL Server 2017下载安装教程 第一步:打开浏览器,在浏览的搜索框中我们输入“SQL Server”。如图,会匹配出中文两条微软官方下载页面(一个页面内容是英文、一个页面内容是中文)。这里我们以中文的为例。 第二步...
  • KEGG 通路信息下载及其相关处理

    千次阅读 2019-01-21 10:30:28
    KEGG数据下载 打开kegg官网: ... 然后点击相应物种前面三个字母缩写位置进入下载界面: 然后点击相应的格式进行下载,我们最常用的下载格式是htext 下载到.keg 格式的文件 ...2.1 初步看看各种通路信息 ...
  • 写这篇文章缘由,是下载一个机器学习课程的课件,想去GitHub上下载,结果下载速度居然只有几k,并且还老是下载失败。然后去百度解决办法,基本上都是让修改hosts文件,修改完成后发现效果并不明显(其实下载速度并没...
  • 超详细的CentOS7.4下载与图文安装

    万次阅读 多人点赞 2018-12-10 15:58:31
    一、CentOS7.4下载 官网下载地址:http://vault.centos.org/ 1、进入CentOS下载官网,找到CentOS7.4版本 2、在CentOS7.4版本页面中,找到isos/ 3、进入页面后,可以看到x86_64 4、在CentOS下载...
  • Python 批量下载BiliBili视频 打包成软件

    万次阅读 多人点赞 2020-03-08 20:31:11
    B站是一个神奇的地方,有动画、番剧,还有游戏、鬼畜,更有为广大程序猿所喜爱的科技和编程教学视频,课时你也许会为怎么下载保存下这些视频而发愁,我也遇到了这样的烦恼,于是利用强大的Python进行一番探索,实现...
  • Swagger怎么下载文件

    千次阅读 2019-04-12 16:34:08
    最近在使用Swagger生成项目的API说明文档,其中就碰到了不能下载文件的问题,困惑了我好几天,终于一次意外解决了问题,后面去深入的... @ApiOperation(value = "下载信息", httpMethod = "GET", notes = "下载符合...
  • 相信做前端的朋友一定都遇到这种情况的,当你的网页中有直接链接apk下载的时候会没有反映的,是因为在微信内是无法下载软件、手机APP等,那么这个时候一般的解决方案就是:必须要点击右上角三个点,选择“在浏览器中...
  • servlet 文件下载信息的添加

    千次阅读 2013-04-08 23:00:37
    在写下载文档的代码时要对下载文件的头信息进行设置,主要是文件名以及文件大小。 首先要在点击链接后,要出现下载的对话框,要有以下这段代码: response.setContentType("application/x-download"); 头文件的...
  • 一套HTML网站后台信息管理静态网页模版下载 源代码下载地址:http://www.zuidaima.com/share/1821271068036096.htm
  • 苹果下载app必须验证付款信息

    千次阅读 2017-05-18 22:37:55
    Iphone使用app store下载必须验证付款信息 听语音 |浏览:21057|更新:2016-10-06 13:56|标签:IPHONE  1 2 3 4 5 6 分步阅读 一键约师傅 百度师傅最快的到家服务,最优质的电脑清灰! 百度经验:...
  • 信息论基础 中文版 pdf下载地址 计算机科学丛书

    千次阅读 多人点赞 2020-03-08 09:22:00
    下载地址
  • JDK1.8下载安装(Windows版)

    万次阅读 多人点赞 2019-03-17 18:15:07
    官网下载 JDK在oracle上的下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html,根据自己的需要,我这儿选择的是“Java SE 8u201 / Java SE 8u202”,点击【JDK-DOWNLOAD】,打开第...
  • Linux(centos7下载安装)

    万次阅读 多人点赞 2019-05-31 17:29:44
    Linux(centos7下载安装) 下载安装Centos7主要有五个个步骤: 1,下载Centos7镜像文件 ...下载信息查自:下载 安装信息查自:安装 下面对五个步骤进行详细介绍: 一,下载Centos镜像文件 下载地址为h...
  • 因为学习需要,需要在网上下载某些区域的遥感影像,然后就在网上查询了各种免费遥感影像的方法,但是总是不能下载到满意的遥感影像,而且查询某些信息时并不能直接查询到有用的信息,浪费了很多时间。故整理一下信息...
  • Java文件下载,自定义下载名称

    千次阅读 2017-09-08 13:47:01
    Java文件下载,自定义下载名称
  • 文件下载测试

    万次阅读 2019-06-04 13:36:59
    文件下载测试 ...单击第四个含有汉字文件下载时,下载失败,如下图所示报错信息 2.前三个不含汉字的文件可以下载成功 3.拼接数据地址在浏览器地址栏是可以下载成功的 http://192.168.1.225:80...
  • 升级macos出现“将安装器信息下载到目标宗卷失败” 解决方法: 关闭wifi,重新打开wifi 问题解决
  • 全国地理信息资源目录服务系统,官方数据下载站,地址:http://www.webmap.cn 可下载DEM、卫星影像、土地覆盖、植被、全国重点洪水、土地利用、矢量地图、地表覆盖,等数据,审批很快,脱密的数据可以直接使用。, ...
  • MySQL 5.7.27详细下载安装配置教程

    万次阅读 多人点赞 2019-08-18 17:24:53
    MySQL 5.7.27 详细下载安装配置教程 前言 在安装MySQL的时候会遇到很多问题,博客上有很多解决问题的办法,在这里我附上一些链接,遇到问题的朋友们可以阅读参考哈~本文主要针对于刚接触数据库的小白,来安装MySQL...
  • 之前,我做了一个天猫评论信息的抓取,和评论图片的下载,不过那次是将信息全部存入数据库后再从数据库提取图片信息进行下载,这次我做了一个信息抓取和图片下载的二合一升级版。 本次以京东nike自营店为目标, ...
  • Linux系统下载(超全镜像下载

    万次阅读 多人点赞 2018-10-25 20:04:03
    网易开源镜像站: http://mirrors.163.com/ 搜狐开源镜像站: http://mirrors.sohu.com/ 首都在线科技股份有限公司: http://mirrors.yun-idc.com/ 中国互联网信息中心: http://mirrors.cnnic.cn (Apache镜像) 阿里...
  • 高级信息系统项目管理师考试视频下载地址:链接: https://pan.baidu.com/s/19DZf7iFEelbsYZU8BRR8Cw 密码: 6xpm  此视频是自己出钱在淘宝上买的培训视频,自己也在备考中,学习了部分收获非常大,对于备考非常有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,001,579
精华内容 800,631
关键字:

下载信息