java上传图片 文件损坏_用mui.ajax上传图片成功,但打开图片时提示此文件可能损坏...

图片上传成功,但打开图片时提示此文件可能损坏,客户端及服务端都有做base64处理,代码如下:

客户端 代码----------------------------------

function appendFile(path) {

path = path.replace(/_/, "../");

var img = new Image();

img.src = path;

img.onload = function() {

var that = this;

//生成比例

var w = that.width,

h = that.height,

scale = w / h;

w = 480 || w; //480 你想压缩到多大

h = w / scale;

//生成canvas

var canvas = document.createElement('canvas');

var ctx = canvas.getContext('2d');

$(canvas).attr({

width: w,

height: h

});

ctx.drawImage(that, 0, 0, w, h);

var base64 = canvas.toDataURL('image/jpeg', 1 || 1); //1z 表示图片质量,越低越模糊。

// alert(base64);

files.push({

name: "file" + index,

pic: base64

}); // 把base64数据丢进数组,上传要用。

index++;

var pic = document.getElementById("x");

pic.src = base64; //这里丢到img 的 src 里面就能看到效果了

}

}

function upload() {

if (files.length <= 0) {

plus.nativeUI.alert("没有添加上传文件!");

return;

}

alert(files.length);

f1 = files[0].pic;

var wt = plus.nativeUI.showWaiting();

var url = '你的后台地址';

//预期服务器范围的数据类型

var dataType = 'json';

var postdata = {

'CORP_ID': '10002',

'USER_ID': '10200',

'FILE_NAME': '112233411',

'FILE_ID': '112233411',

'DATA': f1};

//发送数据

mui.ajax('http://xxxxxx/uploadPhoto.shtml', {

data: {

'data': JSON.stringify(postdata)

},

dataType: 'json', //服务器返回json格式数据

type: 'post', //HTTP请求类型

timeout: 30000, //超时时间设置为10秒;

success: function(data) {

wt.close();

//服务器返回响应,根据响应结果,分析是否登录成功;

var MESSAGE = data.MESSAGE;

alert(MESSAGE.MESSAGECONTENT);

},

error: function(xhr, type, errorThrown) {

wt.close();

alert('上传失败')

//异常处理;

console.log(type);

}

});

}

-----------服务端代码

byte[] data = Base64.decodeBase64(base64.getBytes());

StringBuffer dir = new StringBuffer(UploadUtils.PHOTO_FOLDER).append("/")

.append(corpId);

String filename = new StringBuffer().append("/").append(uuid).append(".jpg").toString();

File filedir = new File(dir.toString());

if (!filedir.exists())

filedir.mkdirs();

try {

ServiceFile service = (ServiceFile) ctx.getBean("remoteServiceFile");

// 保存文件

FileOutputStream out = new FileOutputStream(dir.append(filename).toString());

out.write(data);

out.flush();

// 文件信息入库

FilePO filePO = new FilePO();

filePO.setFILE_ID(uuid);

filePO.setCORP_ID(corpId);

filePO.setFILE_NAME(fileName);

filePO.setFILE_TYPE(fileType);

service.insertFileInfo(filePO);

} catch (Exception e) {

e.printStackTrace();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值