白狼King 2016-08-01 06:13 采纳率: 26.3%
浏览 1663
已采纳

获取的图片地址乱码解决,但是保存的图片乱码怎么解决?在线等,求大神,解决,速结贴

package com.togest.emis.modules.resource.web;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.codec.binary.Base64;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.togest.emis.framework.utils.EncodeUtils;

/**

@author mmk
*
*/
@Controller
public class PsaveController {
@RequestMapping(value="save",method = RequestMethod.POST)
public void save(Map map,HttpServletRequest request,HttpServletResponse response) throws IOException{
String imageData2 = request.getParameter("imageData2");
String file_path = request.getParameter("file_path");
file_path = URLDecoder.decode(file_path , "utf-8");
System.out.println("++++++++++++++++"+file_path);
//String f = new String(request.getParameter("file_path").getBytes("ISO-8859-1"),"UTF-8");
//System.out.println("+++++++++++++++++"+f);
String file_name = request.getParameter("file_name");
String Path = request.getSession().getServletContext().getRealPath("/");
String filePath2 = file_path.substring(0, 34);
String filePath=file_path.replace(filePath2,Path);
filePath =EncodeUtils.isoDecode(filePath);
String fileName=file_name;
File file = new File(filePath);
System.out.println("+++++++"+filePath);
//System.out.println("+++++++++"+EncodeUtils.isoDecode(filePath));
if(imageData2!=null){
try{
FileOutputStream write = new FileOutputStream(file);
byte[] decoderBytes = Base64.decodeBase64(imageData2.replace("data:image/png;base64,",""));
imageData2 = imageData2.replace("base64,","");
write.write(decoderBytes);
write.flush();
write.close();

        }catch(Exception e){
            e.printStackTrace();

        }

}
}
}
保存控制器代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/common/taglibs.jsp"%>
<!DOCTYPE html>

href="${pageContext.request.contextPath}/system/css/wColorPicker.css" />

href="${pageContext.request.contextPath}/system/css/wPaint.css" />

    <td colspan="2">
        <div>
            <div id="box"></div>
            <input type="button" value="保存" onClick="saveImage2()"
                onblur="saveImage2()" /> <input type="button" value="提交"
                onblur="saveImage2()" onclick="saveImage2()"> <input
                type="button" value="全屏" onclick="full_screen()">
        </div> <br />
    </td>
</tr>




$(document).ready(function() { //alert('${filePath}'); ///alert('${ctx}/fileupload/download_file_url?fileDir=${filePath}'); $('#canvasImage3').attr('src','${ctx}/fileupload/download_file_url?fileDir=${filePath}'); }); function saveImage2() { var imageData2 = $("#wPaint2").wPaint("image");//获取wPaint的image属性值可获取base64格式的图片数据 var file_path = encodeURI(document.getElementById("canvasImage3").src);//这个获取乱码 file_path = encodeURI(file_path); var file_name = document.getElementById("canvasImage3").name; alert(file_path); $.ajax({ url : '${ctx}/save', type : 'post', data : { imageData2 : imageData2, file_path : file_path, file_name : file_name }, dataType : "json", success : function(result) { alert(result); if ("ture" == $.trim(result)) { $("#box").html("保存成功"); } else { $("#box").html("保存失败"); } }, error : function() { $("#box").html("保存成功"); } }); //$("#canvasImage2").attr('src', imageData2); } function convertCanvasToImage(canvas) { var image = new Image(); image.src = canvas.toDataURL("image/png"); return image; } var flag = false; //控制小图 function DrawImage(ImgD) { var image = new Image(); image.src = ImgD.src; if (image.width > 1620 || image.height > 1200) { image.width = 1620; image.height = 1200; } $("#wPaint2").css({ width : image.width, height : image.height }); $("#wPaint2").wPaint({ menuOrientation : 'vertical', imageBg : image.src }); } function full_screen() { var full = document.getElementById("full"); requestFullScreen(full); } function requestFullScreen(element) { var requestMethod = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || element.msRequestFullScreen; if (requestMethod) { requestMethod.call(element); } else if (typeof window.ActiveXObject !== "undefined") { var wscript = new ActiveXObject("WScript.Shell"); if (wscript !== null) { wscript.SendKeys("{F11}"); } } }
    ![图片说明](https://img-ask.csdn.net/upload/201608/01/1470031972_457168.png)
  • 写回答

2条回答 默认 最新

查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机