android 怎么上传数组到服务器
1使用JSONObject 、JSONArray将一个数组编写成json格式传递到php服务器中,php程序接受json格式的参数并解析成数组
这个方法可以就是让php服务器端解析android上传的json格式参数,再构建成一个数组,所以不解释。
2用拼接字段,手动遍历创建所需要发送的key和value,key和value类型为string[],
例如
php端程序需要接受的数组格式为
array=>[ "key1" => "value1",
"key2" => "value2",
"key3" => "value3",
]
android端的处理为:
string [] key = {"array[key1]","array[key2]","array[key3]",}
对应的值:
string [] value = {"value1","value2","value3",}
若php端程序需要接受的数组格式为
array["key1"=>["key11"=>"value11",
微信小程序压缩(OK版)
小程序压缩,已验证OK!
官方提供的压缩方法,亲测iOS有效,Android基本起不到压缩的效果,反而有时候会越压越大。
这是很多教程都有说到的方法,但是自己试过以后,发现很多坑并没有解决。
源码:Github
这是写好的一个库,可以直接使用。下面的内容对照源码去看。
这里说一下遇到的问题:
如何压缩已上传的服务器中的,有没有好用的php页面源码你的服务器是什么系统WINDOWS还是LINUX
WINDOWS的话你可以另外开发一个软件放在服务器上,实时监测是否有新的上传上来,有的话你就执行的大小尺寸或者画质的压缩,当然你的软件也可以通过访问你的PHP程序来完成压缩。
LINUX系统的话,可以写一个常驻脚本,实时监控你的,所以发现文件超过指定大小的话,也执行大小和尺寸压缩的,当然也能通过调用PHP来执行。
以下是一段PHP的压缩代码:
//缩放
functionmt($srcFile,$dstFile,$max_width=200,$max_height=150,$imgQuality=90){
$data=@getimagesize($srcFile);
if($data[0]<=$data[1]and$data[1]>=$max_height){
$height=$max_height;
$width=intval($height$data[0]/$data[1]);
}
if($data[0]>=$data[1]and$data[0]>=$max_width){
$width=$max_width;
$height=intval($width$data[1]/$data[0]);
}
if($height>$max_height){
$height=$max_height;
$width=intval($height$data[0]/$data[1]);
}
if($data[0]<$max_widthand$data[1]<$max_height){
$width=$data[0];
$height=$data[1];
}
switch($data[2]){
case1:
$im=@imagecreatefromgif($srcFile);
break;
case2:
$im=@imagecreatefromjpeg($srcFile);
break;
case3:
$im=@imagecreatefrompng($srcFile);
break;
}
$srcW=@imagesx($im);
$srcH=@imagesy($im);
$ni=@imagecreatetruecolor($width,$height);
@imagecopyresampled($ni,$im,0,0,0,0,$width,$height,$srcW,$srcH);
switch($data[2]){
case'gif':@imagepng($ni,$dstFile,$imgQuality);break;
case'jpeg':@imagejpeg($ni,$dstFile,$imgQuality);break;
case'png':@imagepng($ni,$dstFile,$imgQuality);break;
default:@imagejpeg($ni,$dstFile,$imgQuality);break;
}
}
求C/C++语言写的,压缩程序源代码哥们,推荐你去个地方找吧,CSDN,中国程序员的大本营,在百度就算有,也得给你传过去吧,邮箱附件大小有限制,传不过去,你去CSDN去找找看,我需要什么都去那里下载,关于程序的很多,一定会找到你满意的东西的
// 首先组拼文本类型的参数
StringBuilder sb = new StringBuilder();
for (MapEntry<String, String> entry : paramsentrySet()) {
sbappend(PREFIX);
sbappend(BOUNDARY);
sbappend(LINEND);
sbappend("Content-Disposition: form-data; name=\""
+ entrygetKey() + "\"" + LINEND);
sbappend("Content-Type: text/plain; charset=" + CHARSET + LINEND);
sbappend("Content-Transfer-Encoding: 8bit" + LINEND);
sbappend(LINEND);
sbappend(entrygetValue());
sbappend(LINEND);
}
DataOutputStream outStream = new DataOutputStream(
conngetOutputStream());
outStreamwrite(sbtoString()getBytes());
0条评论