新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
计算的下载速度,举例说明一下吧。
在成都网站制作、成都做网站过程中,需要针对客户的行业特点、产品特性、目标受众和市场情况进行定位分析,以确定网站的风格、色彩、版式、交互等方面的设计方向。创新互联建站还需要根据客户的需求进行功能模块的开发和设计,包括内容管理、前台展示、用户权限管理、数据统计和安全保护等功能。
例如每隔N秒就改变当前下载速度数字的,N秒前的下载进度百分比m%,
N秒后的下载进度百分比n%,当前下载问题的总大小Size【换算成多少kb】
(m%-n%)*Size/N就是
这段时间的下载或上传速度了。
注意:记得增加判断一些边界问题。
实现在android实现带进度条的上传效果效果如图:用到以下两个类就可实现带进度条的文件上传:1、CustomMultiPartEntity extends MultipartEntity, 2、HttpMultipartPost extends AsyncTask代码如下:import java/UploadImage.php");try{CustomMultipartEntitymultipartContent = newCustomMultipartEntity(newProgressListener() {@Overridepublic void transferred(longnum){publishProgress((int) ((num / (float) totalSize) * 100));}});// We use FileBody to transfer an imagemultipartContent.addPart("uploaded_file", newFileBody(newFile(m_userSelectedImagePath)));totalSize= multipartContent.getContentLength();// Send ithttpPost.setEntity(multipartContent);HttpResponseresponse = httpClient.execute(httpPost, httpContext);String serverResponse = EntityUtils.toString(response.getEntity());ResponseFactoryrp = newResponseFactory(serverResponse);return(TypeImage) rp.getData();}catch(Exception e) {System.out.println(e);}returnnull;}@OverrideprotectedvoidonProgressUpdate(Integer... progress){pd.setProgress((int) (progress[0]));}@OverrideprotectedvoidonPostExecute(TypeUploadImageui) {pd.dismiss();}} 在 transferred()函数中调用publishProgress((int) ((num / (float) totalSize) * 100));在onProgressUpdate()实现上传进度的更新操作
Android文件上传可能是一个比较耗时的操作,如果为上传操作带上进度提示则可以更好的提高用户体验,最后效果如下图:
可使用android自带的httpclient框架实现,附件中已经现成的示例代码,带上传进度。
1. GET 方式传递参数
//先将参数放入List,再对参数进行URL编码
ListBasicNameValuePair params = new LinkedListBasicNameValuePair();
params.add(new BasicNameValuePair("param1", "数据")); //增加参数1
params.add(new BasicNameValuePair("param2", "value2"));//增加参数2
String param = URLEncodedUtils.format(params, "UTF-8");//对参数编码
String baseUrl = "服务器接口完整URL";
HttpGet getMethod = new HttpGet(baseUrl + "?" + param);//将URL与参数拼接
HttpClient httpClient = new DefaultHttpClient();
try {
HttpResponse response = httpClient.execute(getMethod); //发起GET请求
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //获取响应码
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8"));//获取服务器响应内容
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
2. POST方式 方式传递参数
//和GET方式一样,先将参数放入List
params = new LinkedListBasicNameValuePair();
params.add(new BasicNameValuePair("param1", "Post方法"));//增加参数1
params.add(new BasicNameValuePair("param2", "第二个参数"));//增加参数2
try {
HttpPost postMethod = new HttpPost(baseUrl);//创建一个post请求
postMethod.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //将参数填入POST Entity中
HttpResponse response = httpClient.execute(postMethod); //执行POST方法
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //获取响应码
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8")); //获取响应内容
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
计算的下载速度,举例说明一下吧。
例如每隔N秒就改变当前下载速度数字的,N秒前的下载进度百分比m%,
N秒后的下载进度百分比n%,当前下载问题的总大小Size【换算成多少kb】
(m%-n%)*Size/N就是 这段时间的下载或上传速度了。
注意:记得增加判断一些边界问题。