微信订阅号上传视频gif不能动,超过300K的先上传到自己的网站或者论坛或者博客直接从页面复制,上传到哪网站

问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
上传到微信服务器的jpg动态图片,下载下来格式变成了gif,这是。。。?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
很多网站都有自己统一处理图片的方式,例如Facebook会把Gif处理成mp4,并且更节省带宽,显示效果是一样的
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
jpeg还能动?
解释下,如果原本就是gif,但是扩展名是jpg的话,一般来说上传时可能在浏览器这头已经把真实类型写到请求头里了,到后端再改名,妥妥的打回原形啊。另外,jpg是纯静态格式。
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:君,已阅读到文档的结尾了呢~~
关于微信公众平台开发的100个问题
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
关于微信公众平台开发的100个问题
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口6336人阅读
web开发(38)
h5活动页面功能:[在手机上微信分享]
1.上传两张图片
2.播放一个背景音乐
很简单是么?那说明你知道的太少了,其实里面的坑好多
一下是制作的心路历程:
坑1、iphone上传照片的时候,因为有oriten的原因,所以传上去旋转了
坑2、安卓autoplay不生效
用js获取图片的oritain值,然后自己旋转裁切
结果发现脚本获取的orita值是错误的,而且
由于要着急上线,所以里面换了一个组件:百度的webuploader
坑一解决:图片上传旋转的问题解决:
坑3:可是因为用了七牛的图片服务,所以安卓遇到了坑,前端传过来的图片留不能写入七牛,
最后没经过调试才发现上面的坑,
解决办法是:在前端却别安卓和iphone 让他们调用不行的服务,如果是iphone直接上传七牛,如果是安卓则先存本地,然后再传七牛,如果七牛上传成功,则返回七牛的地址
如果七牛失败,则保存本地服务器地址。这样就保证图片能传上来
最后问题总算解决:
下面是代码:
&%@ page trimDirectiveWhitespaces=&true& %&
&%@ page import=&java.util.*&%&
&%@ taglib uri=&/jsp/jstl/core& prefix=&c&%&
&%@ taglib uri=&/jsp/jstl/fmt& prefix=&fmt&%&
&%@ taglib uri=&/jsp/jstl/functions& prefix=&fn& %&
&% String basepath = request.getContextPath();%&
&!DOCTYPE HTML&
&%@ page language=&java& contentType=&text/ charset=utf-8& pageEncoding=&utf-8&%&
&meta charset=&utf-8&&
&meta content=&width=640,user-scalable=no& name=&viewport&&
&meta name=&apple-mobile-web-app-capable& content=&yes&&
&meta name=&format-detection& content=&telephone=no&&
&!-- &meta name=&viewport& content=&width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no&/& --&
&title&制作告白书&/title&
&link rel=&stylesheet& type=&text/css& href=&webuploader/webuploader.css& &
*{ margin:0; padding:0;}
html,body { font-size: 12 display: line-height: font-family:&helvetica&; position:}
article,aside,dialog,footer,header,section,nav,figure,menu,time,summary{ display: }
img{ border: 0; vertical-align:}
body{background: url(img/bg-repeat.png);
.select:before{
position:top: 40right: 25width: 0;height: 0;content: '';border: 15 border-color:border-top-color: #F29E81; }
.upload{overflow:width: 75%;margin: 0 padding: 40px 10%;}
.upload section{width: 220height: 220background: #box-shadow: 0 0 15px rgba(0,0,0,0.1); text-align: overflow:position:}
.upload section:first-child{float:}
.upload section:last-child{float:}
.upload section span{font-size: 32color: #F29E80; position: top: 0;
width: 100%; display:}
.upload input{a
ppearance:-webkit-appearance:height: 100%;
width: 100%; opacity: 0;position:
z-index: 99;
.upload article{width: 100%;height: 100%;position:left: 0;top: 0;}
.upload article img{width: 100%;height:}
.load{width: 100%;height: 100%;background: url(img/load.gif) 50% 50% no- background-color: rgba(0,0,0,0.7); position: left: 0;top: 0;z-index: 999;}
&script type=&text/javascript& src=&&%=basepath %&/js/jquery-1.7.2.min.js&&&/script&
&script type=&text/javascript& src=&&%=basepath %&/js/tg.js&&&/script&
&script type=&text/javascript& src=&&%=basepath%&/js/yxy.js&&&/script&
&script type=&text/javascript&&
initpage(&hd-gb&);
&form method=&post& action=&&%=basepath%&/5/addConfession&
enctype=&multipart/form-data&
onsubmit=&return iframeCallback();&&
&input type=&hidden& id=&pichidden_1& name=&img1Url&&
&input type=&hidden& id=&pichidden_2& name=&img2Url&&
&div style=&padding: 80px 0;&&&img src=&img/t3.png& style=&width: 100%;height:&/&&/div&
&div style=&width: 75%;margin: 0box-shadow: 0 0 15px rgba(0,0,0,0.1)&&
&input type=&text& id=&babyNickname&
name=&babyNickname&
width: 95%;
padding: 0 0 0 5%;
height: 88
border: 0;
background: #
color: #F29E80;
font-size: 32&
value=&输入宝宝昵称&
onfocus=&if (value =='输入宝宝昵称'){value =''}&
onblur=&if (value ==''){value='输入宝宝昵称'}& &
&div style=&width: 75%;margin: 40px auto 0;box-shadow: 0 0 15px rgba(0,0,0,0.1);position:& class=&select&&
&select name=&babyRelationship& id=&babyRelationship&
height: 88
background: #
width: 100%;
-webkit-appearance:
border: 0;
font-size: 32
padding-left: 5%;
color: #F29E80;&&
&option value=&你是宝宝的...&&你是宝宝的...&/option&
&option value=&爸爸&&爸爸&/option&
&option value=&妈妈&&妈妈&/option&
&option value=&其他人&&其他亲友&/option&
&div class=&upload&&
&div class=&wu-example&&
&div id=&fileList& class=&uploader-list&&&/div&
&span id=&picker&&照片1&/span&
&div id=&thumb&&&/div&
&/article&
&div class=&load& id=&loading1& style=&display: none&&&/div&
&/section&
&div class=&wu-example&&
&div id=&fileList& class=&uploader-list&&&/div&
&span id=&picker2&&照片2&/span&
&div id=&thumb2&&&/div&
&/article&
&div class=&load& id=&loading2& style=&display: none&&&/div&
&/section&
&div style=&width: 75%;margin: 0padding: 50px 0 75&&
&a href=&javascript:void(0)&
style=&display:
height: 99
line-height: 99
text-align:
font-size: 36
margin:0 0 50
background: #4FC6A4;
text-decoration:&
onclick=&clickSubmit();&
&分享并查看&/a&
&script type=&text/javascript& src=&webuploader/webuploader.nolog.min.js&&&/script&
&script src=&../html5/test/js/ostype.js&&&/script&
&script src=&http://res./open/js/jweixin-1.0.0.js&&&/script&
&script type=&text/javascript& src=&&%=basepath %&/js/share.js&&&/script&
&script type=&text/javascript&&
$(&#pichidden_1&).val(&&);
$(&#pichidden_2&).val(&&);
$(document).ready(function(){
var serverU//默认值
alert(&1&);
var u = navigator.userA
if (u.indexOf('Android') & -1 || u.indexOf('Linux') & -1) {//安卓手机
alert(&安卓手机&);
serverUrl = &/hd/5/updateHeadImgNew&;
// window.location.href = &mobile/index.html&;
} else if (u.indexOf('iPhone') & -1) {//苹果手机
// window.location.href = &mobile/index.html&;
serverUrl = &/hd/5/updateHeadImg&;
alert(&苹果手机&);
} else if (u.indexOf('Windows Phone') & -1) {//winphone手机
alert(&winphone手机&);
serverUrl = &/hd/5/updateHeadImg&;
// window.location.href = &mobile/index.html&;
serverUrl = &/hd/5/updateHeadImg&;
alert(serverUrl);
var error1 =
var error2 =
var uploader = WebUploader.create({
// swf文件路径
swf: 'webuploader/Uploader.swf',
auto: true,
// 文件接收服务端。
server: serverUrl,//本地测试地址
server: '/hd/5/updateHeadImgNew',//线上地址
fileVal :'image',
width: 220,
height: 220,
// 图片质量,只有type为`image/jpeg`的时候才有效。
quality: 70,
// 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
allowMagnify: false,
// 是否允许裁剪。
crop: true,
// 为空的话则保留原有图片格式。
// 否则强制转换成指定的类型。
type: 'image/jpeg'
compress:{
width: 1000,
height: 1000,
// 图片质量,只有type为`image/jpeg`的时候才有效。
quality: 90,
// 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
allowMagnify: false,
// 是否允许裁剪。
crop: false,
// 是否保留头部meta信息。
preserveHeaders: true,
// 如果发现压缩后文件大小比原来还大,则使用原来图片
// 此属性可能会影响图片自动纠正功能
noCompressIfLarger: false,
// 单位字节,如果图片大小小于此值,不会采用压缩。
compressSize: 0
// 选择文件的按钮。可选。
// 内部根据当前运行是创建,可能是input元素,也可能是flash.
pick: '#picker',
// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
resize: true,
//目前移动端有几个重要的 bug 在此列出来以免大家踩坑。
上传请求内容为空,这是 android 4 的一个bug,只要 file 的 blob数据修改过,通过 xhr2 去发送就有这个问题。 详情:/p/android/issues/detail?id=39882
解决方案: 发送的时候采用二进制方案,即 把 sendAsBinary 设置成true, 通过这种方式可以避免这个问题。后端接受需要小改动一下。
sendAsBinary:true,
fileNumLimit:1,
// 只允许选择图片文件。
title: 'Images',
extensions: 'gif,jpg,jpeg,bmp,png',
mimeTypes: 'image/*'
uploader.on( 'fileQueued', function( file ) {
uploader.makeThumb( file, function( error, ret ) {
if ( error ) {
$li.text('预览错误');
$(&#picker&).first(&div&).html(&&);
$(&#thumb&).html('&img alt=&& src=&' + ret + '& /&');
$(&#loading1&).show();
uploader.on( 'uploadSuccess', function( file,result ) {
$( '#'+file.id ).addClass('upload-state-done');
qiuniuurl1 = result.data.usI
$(&#pichidden_1&).val(qiuniuurl1);
$(&#loading1&).hide();
var uploader2 = WebUploader.create({
// swf文件路径
swf: 'webuploader/Uploader.swf',
auto: true,
// 文件接收服务端。
server: serverUrl,//本地
server: '/hd/5/updateHeadImgNew',// 线上
fileVal :'image',
width: 220,
height: 220,
// 图片质量,只有type为`image/jpeg`的时候才有效。
quality: 70,
// 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
allowMagnify: true,
// 是否允许裁剪。
crop: true,
// 为空的话则保留原有图片格式。
// 否则强制转换成指定的类型。
type: 'image/jpeg'
compress:{
width: 500,
height: 500,
// 图片质量,只有type为`image/jpeg`的时候才有效。
quality: 90,
// 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
allowMagnify: false,
// 是否允许裁剪。
crop: false,
// 是否保留头部meta信息。
preserveHeaders: true,
// 如果发现压缩后文件大小比原来还大,则使用原来图片
// 此属性可能会影响图片自动纠正功能
noCompressIfLarger: false,
// 单位字节,如果图片大小小于此值,不会采用压缩。
compressSize: 0
// 选择文件的按钮。可选。
// 内部根据当前运行是创建,可能是input元素,也可能是flash.
pick: '#picker2',
// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
resize: true,
sendAsBinary:true,
fileNumLimit:1,
// 只允许选择图片文件。
title: 'Images',
extensions: 'gif,jpg,jpeg,bmp,png',
mimeTypes: 'image/*'
uploader2.on( 'fileQueued', function( file ) {
uploader2.makeThumb( file, function( error, ret ) {
if ( error ) {
$li.text('预览错误');
if(!error2){
$(&#picker2&).first(&div&).html(&&);
$(&#thumb2&).html('&img alt=&& src=&' + ret + '& /&');
$(&#loading2&).show();
uploader2.on( 'uploadSuccess', function( file,result ) {
qiuniuurl2 = result.data.usI
$(&#pichidden_2&).val(qiuniuurl2);
$(&#loading2&).hide();
* 1. 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
* 2. 如果发现在 Android 不能分享自定义内容,请到官网下载最新的包覆盖安装,Android 自定义分享接口需升级至 6.0.2.58 版本及以上。
* 3. 常见问题及完整 JS-SDK 文档地址:http://mp./wiki/7/aaa137b55fb2e48dd613f.html
* 开发中遇到问题详见文档“附录5-常见错误及解决办法”解决,如仍未能解决可通过以下渠道反馈:
* 邮箱地址:weixin-
* 邮件主题:【微信JS-SDK反馈】具体问题
* 邮件内容说明:用简明的语言描述问题所在,并交代清楚遇到该问题的场景,可附上截屏图片,微信团队会尽快处理你的反馈。
type: &post&,
url: &/hd/common/getWeixinInfo&,
url:&&+window.location
success: function(msg){
title1 = &陪伴是最长情的告白&;
desc1 = &2015年最大的收获是什么?我终于找到了答案,那就是……&;
= &http://qn.ivybaby.me/@/hd/tu1.jpg&;
link1= &/hd/5/gb&;
wx.ready(function () {
//默认的图片和文案
//默认的图片和文案
share(title1,desc1,link1,image1);
function iframeCallback(){
var babyNickName = $(&#babyNickname&).val().trim();
if(babyNickName==null||babyNickName==&&||babyNickName==&输入宝宝昵称&){
alert(&昵称不能为空&);
if(babyNickName.length&200){
alert(&昵称不能超过200&);
var babyRelationship = $(&#babyRelationship&).val();
if(babyRelationship==&你是宝宝的...&){
alert(&请选择于宝宝的关系&);
var pic1 = $(&#pichidden_1&).val();
var pic2 = $(&#pichidden_2&).val();
if(pic1==&&||pic1.length==0){
alert(&照片1没上传&);
if(pic2==&&||pic2.length==0){
alert(&照片2没上传&);
webclick('c');
function clickSubmit(){
$(&form&).submit();
wx.config({
debug: false,
appId: 'wx75e7a5ac23efd495',
timestamp: ret.timestamp,
nonceStr: ret.nonceStr,
signature: ret.signature,
jsApiList: [
'checkJsApi',
'onMenuShareTimeline',
'onMenuShareAppMessage',
'onMenuShareQQ',
'onMenuShareWeibo'
Event5.java
package com.cyt.babyhealth.event.
import java.awt.image.BufferedI
import java.io.ByteArrayOutputS
import java.io.F
import java.io.IOE
import java.io.InputS
import java.text.SimpleDateF
import java.util.D
import java.util.HashM
import javax.annotation.R
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletR
import org.imgscalr.S
import org.springframework.stereotype.C
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.ResponseB
import org.springframework.web.multipart.MultipartHttpServletR
import com.alibaba.druid.util.Base64;
import com.alibaba.fastjson.JSON;
import com.cyt.babyhealth.event.entity.C
import com.cyt.babyhealth.event.service.ConfessionS
import com.cyt.babyhealth.event.util.ApiR
import com.cyt.babyhealth.event.util.ImageU
import com.cyt.babyhealth.event.util.QiniuU
import com.cyt.core.controller.BaseC
import com.cyt.core.util.UUIDU
import com.sun.mail.handlers.image_
@Controller
@RequestMapping(&/5&)
public class Event5Contrller extends BaseController {
@Resource(name = &confessionServiceImpl&)
private ConfessionService confessionS
private final String upurl = &img/event/procession/&;
@RequestMapping(value = &/gb&)
public String index(Integer id, Integer tid) {
Confession confession = new Confession();
confession
.setImg1Url(&http://qn.ivybaby.me/@/hd/tu1.jpg&);
confession
.setImg2Url(&http://qn.ivybaby.me/@/hd/tu2.jpg&);
confession.setBabyNickname(&你&);
confession.setBabyRelationship(&人&);
getRequest().setAttribute(&confession&, confession);
return &event5/tomakeConfession&;
@RequestMapping(value = &/cid&)
// @ResponseBody
public String cid() {
String p = getRequest().getParameter(&p&);
String id = getRequest().getParameter(&id&);
Confession confession = confessionService.find(Integer
.parseInt(id));
if (confession != null) {
getRequest().setAttribute(&confession&, confession);
if(&1&.equals(p)){
getRequest().setAttribute(&p&, p);
return &event5/tomakeConfession&;
@RequestMapping(value = &/uploadConfessionImage&)
@ResponseBody
public ApiResult uploadConfessionImage() throws IOException {
ApiResult apiResult = new ApiResult();
String imageUrl = &&;
String base64Img = getRequest().getParameter(&base64Img&);
System.out.println(base64Img);
String lastType = &&;
String[] base64ImgArr = base64Img.split(&;&);
if (base64ImgArr.length & 0) {
String imageType = base64ImgArr[0];
String[] ImgTypeArr = imageType.split(&/&);
if (ImgTypeArr.length == 2) {
lastType = ImgTypeArr[1];
String base64Image = base64ImgArr[1].split(&,&)[1];
// base64编码字符串解码(后端语言实现),将解码后的二进制数据以二进制的形式保存到服务器上
byte[] imageByte = Base64.base64ToByteArray(base64Image);
imageUrl = getQiNiuUrl(imageByte, lastType);
imageUrl = BASE_QN_URL+imageU
HashMap m = new HashMap();
m.put(&imageUrl&, imageUrl);
apiResult.setData(m);
// getRequest().setAttribute(&imageUrl&, imageUrl);
return apiR
* 制作好以后,自动跳转到分享页面
* @param confession
* @param request
* @param response
@RequestMapping(value = &/addConfession&)
@ResponseBody
public void addConfession(Confession confession,String img1Url,
MultipartHttpServletRequest request, HttpServletResponse response) {
String sessionId = request.getSession().getId();
System.out.println(&*********************sessionId:********************&+sessionId);
System.out.println(&confession:&+JSON.toJSONString(confession));
System.out.println(&img1Url:&+img1Url);
if (confession != null) {
Confession confessionNew = new Confession();
confessionNew.setCreateTime(new Date());
confessionNew.setUpdateTime(new Date());
confessionNew.setStatus(1);
// confessionNew.setCreateUid(111);
// confessionNew.setUpdateUid(ManagerUtil.getAdminId());
String babyNickName = confession.getBabyNickname();
String babyRelationship = confession.getBabyRelationship();
if (&其他人&.equals(babyRelationship)) {
babyRelationship = &人&;
String image1Url = confession.getImg1Url();
String image2Url = confession.getImg2Url();
confessionNew.setBabyNickname(babyNickName);
confessionNew.setBabyRelationship(babyRelationship);
confessionNew.setImg1Url(image1Url);
confessionNew.setImg2Url(image2Url);
confessionNew.setUpdateTime(new Date());
confessionService.save(confessionNew);
getRequest().setAttribute(&confession&, confessionNew);
getRequest().setAttribute(&p&, &1&);
response.sendRedirect(&cid?p=1&id=&
+ confessionNew.getId());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return &event5/tomakeConfession&;
@RequestMapping(value = &/previesConfession&)
public String previesConfession(Confession confession) {
if (confession != null) {
Confession confessionNew = new Confession();
confessionNew.setCreateTime(new Date());
confessionNew.setUpdateTime(new Date());
confessionNew.setStatus(1);
// confessionNew.setCreateUid(111);
// confessionNew.setUpdateUid(ManagerUtil.getAdminId());
String babyNickName = confession.getBabyNickname();
String babyRelationship = confession.getBabyRelationship();
if (&其他人&.equals(babyRelationship)) {
babyRelationship = &人&;
String image1Url = confession.getImg1Url();
String image2Url = confession.getImg2Url();
confessionNew.setBabyNickname(babyNickName);
confessionNew.setBabyRelationship(babyRelationship);
confessionNew.setImg1Url(image1Url);
confessionNew.setImg2Url(image2Url);
confessionNew.setUpdateTime(new Date());
confessionService.save(confessionNew);
getRequest().setAttribute(&confession&, confession);
return &event5/tomakeConfession&;
public static byte[] cropBytes(InputStream in, int size) {
BufferedImage bi =
// bi = ImageIO.read(new File(srcPath));
bi = ImageIO.read(in);
int sWidth = bi.getWidth();
int sHeight = bi.getHeight();
int x = 0;
int y = 0;
if (sWidth &= sHeight) {
bi = Scalr.resize(bi, Scalr.Method.QUALITY,
Scalr.Mode.FIT_TO_HEIGHT, size);
x = (bi.getWidth() - size) / 2;
bi = Scalr.resize(bi, Scalr.Method.QUALITY,
Scalr.Mode.FIT_TO_WIDTH, size);
y = (bi.getHeight() - size) / 2;
bi = Scalr.crop(bi, x, y, size, size);
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(bi,&jpg&,
return out.toByteArray();
} catch (IOException e) {
e.printStackTrace();
public String getQiNiuUrl(byte[] file, String fileType) throws IOException {
// 上传封面
String filename = UUIDUtil.getUUID() + &.& + fileT
if (upurl != null) {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(&YYYYMMdd&);
String dateUrl = sdf.format(date);
String key = upurl + dateUrl + &/& +
boolean flag = QiniuUtil.IVYBABY.uploadFile(key, file);
if (flag) {
// @RequestMapping(&/updateHeadImg&)
// @ResponseBody
// public ApiResult updateHeadImg(@RequestParam(required = true) MultipartFile image) {
ApiResult apiResult = new ApiResult();
// 上传文件
if (!image.isEmpty()) {
String filename = UUIDUtil.getUUID() + image.getOriginalFilename();
String key =&&;
if (upurl != null) {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(&YYYYMMdd&);
String dateUrl = sdf.format(date);
key = upurl + dateUrl + &/& +
imageByte = this.cropBytes(image.getInputStream(), 420);
boolean flag = QiniuUtil.IVYBABY_IMG.uploadFile(key, image.getBytes());
System.out.println(&上传七牛:& + flag);
} catch (IOException e) {
e.printStackTrace();
apiResult.getData().put(&usIco&,BASE_QN_URL+key);
apiResult.setMsg(&图片不能为空&);
return apiR
public static final byte[] input2byte(InputStream inStream)
throws IOException {
ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
byte[] buff = new byte[100];
int rc = 0;
while ((rc = inStream.read(buff, 0, 100)) & 0) {
swapStream.write(buff, 0, rc);
byte[] in2b = swapStream.toByteArray();
return in2b;
@RequestMapping(&/updateHeadImgNew&)
@ResponseBody
public ApiResult updateHeadImgNew() {
ApiResult apiResult = new ApiResult();
String imgUrl = &&;
InputStream inputStream =
String bendiPic = &&;
inputStream = getRequest().getInputStream();
//当前日期
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(&YYYYMMdd&);
String dateUrl = sdf.format(date);
String path=&/static/imgtest/&+dateU//线上路径
String path=&D://imgtest/&+dateU//测试
//创建文件夹
File f = new File(path);
if(!f.exists())
f.mkdirs();
//上传图片到本地
bendiPic = path+&/&+UUIDUtil.getUUID()+&.png&;//线上地址
System.out.println(&bendiPic:&+bendiPic);
BufferedImage image = ImageIO.read(inputStream);
ImageIO.write(image, &png&, new File(bendiPic));
//裁切,并保存本地
ImageUtil.crop(inputStream, 420, bendiPic);
System.out.println(&-----------本地保存路径:-----------&+bendiPic);
String filename = UUIDUtil.getUUID() + &.png&;
String key = upurl + dateUrl + &/& +
//上传七牛
boolean flag = QiniuUtil.IVYBABY.uploadFile(key, bendiPic);
//如果上传七牛失败,则返回本地路径
imgUrl = BASE_QN_URL+key+&?imageView2/1/w/420&;
//这里做的文件映射,用域名映射上面的真是路径/static/imgtest/xxxxx.png
imgUrl = &static.ivybaby.me/imgtest/&+bendiP
apiResult.getData().put(&usIco&,imgUrl);
} catch (Exception e) {
// TODO Auto-generated catch block
apiResult.setMsg(&图片不能为空&);
e.printStackTrace();
System.out.println(&--------------imageUrl--------------【&+imgUrl+&】&);
return apiR
@RequestMapping(&/updateHeadImg&)
@ResponseBody
public ApiResult updateHeadImg(String name) {
ApiResult apiResult = new ApiResult();
byte[] imageByte =
InputStream inputStream = getRequest().getInputStream();
imageByte = mons.io.IOUtils.toByteArray(inputStream);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
// 上传文件
if (imageByte.length&0) {
String filename = UUIDUtil.getUUID() +
String key =&&;
if (upurl != null) {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(&YYYYMMdd&);
String dateUrl = sdf.format(date);
key = upurl + dateUrl + &/& +
imageByte = this.cropBytes(image.getInputStream(), 420);
System.out.println(&key------------------------&+key);
boolean flag = QiniuUtil.IVYBABY.uploadFile(key, imageByte);
System.out.println(&flag:----------------&+flag);
System.out.println(&上传七牛:& + flag);
apiResult.getData().put(&usIco&,BASE_QN_URL+key+&?imageView2/1/w/420&);
apiResult.setMsg(&图片不能为空&);
System.out.println(JSON.toJSONString(apiResult));
return apiR
微信js:ps:这个需要和域名绑定才能生效
function share(title,desc,link,imgUrl){
//分享给朋友圈
wx.onMenuShareTimeline({
title: title,
link: link,
imgUrl: imgUrl,
trigger: function (res) {
// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
// alert('用户点击分享到朋友圈');
success: function (res) {
tongji(&incrShareNum&);
alert('已分享');
cancel: function (res) {
alert('已取消');
fail: function (res) {
// alert(JSON.stringify(res));
// 2.1 监听“分享给朋友”,按钮点击、自定义分享内容及分享结果接口
wx.onMenuShareAppMessage({
title: title,
desc: desc,
link: link,
imgUrl: imgUrl,
trigger: function (res) {
// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
// alert('用户点击发送给朋友');
success: function (res) {
tongji(&incrShareNum&);
alert(&aa&);
//alert('已分享');
cancel: function (res) {
//alert('已取消');
fail: function (res) {
//alert(JSON.stringify(res));
wx.onMenuShareQQ({
title: title,
desc: desc,
link: link,
imgUrl: imgUrl,
trigger: function (res) {
// alert('用户点击分享到QQ');
complete: function (res) {
// alert(JSON.stringify(res));
success: function (res) {
alert('已分享');
tongji(&incrShareNum&);
cancel: function (res) {
// alert('已取消');
fail: function (res) {
//alert(JSON.stringify(res));
wx.onMenuShareWeibo({
title: title,
desc: desc,
link: link,
imgUrl: imgUrl,
trigger: function (res) {
//alert('用户点击分享到微博');
complete: function (res) {
//alert(JSON.stringify(res));
success: function (res) {
tongji(&incrShareNum&);
//alert('已分享');
cancel: function (res) {
// alert('已取消');
fail: function (res) {
//alert(JSON.stringify(res));
function isshow(){
if( $(&#tip-share&)!=undefined){
$(&#tip-share&).fadeOut(300);
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:103476次
积分:2391
积分:2391
排名:第15429名
原创:136篇
转载:38篇
评论:12条
(1)(5)(2)(2)(2)(2)(8)(7)(5)(2)(3)(1)(9)(3)(2)(6)(1)(6)(12)(7)(4)(1)(1)(2)(6)(5)(3)(5)(7)(19)(2)(4)(3)(2)(4)(2)(1)(7)(7)(2)(1)

我要回帖

更多关于 微信订阅号 gif 的文章

 

随机推荐