jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>API上传例子</title> <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script> </head> <script type="text/javascript"> function doFileUpload(){ form = document.getElementById("create_video_sample"); buildJSONRequest(form); form.action = document.getElementById("yourAPILocation").value; form.submit(); } function buildJSONRequest(form){ json = form.JSONRPC //Construct the JSON request: json.value = '{"writetoken": "'+ document.getElementById("yourWriteToken").value + '","title": "'+ document.getElementById("name").value + '","describ":"'+ document.getElementById("describ").value + '","tag":"'+ document.getElementById("shortDescription").value + '","Filedata.filename":"'+ document.getElementById("Filedata").value + '"}'; form.JSONView.value = json.value; form.writetoken.value=document.getElementById("yourWriteToken").value; form.title.value=document.getElementById("name").value; form.describ.value=document.getElementById("describ").value; form.tag.value=document.getElementById("shortDescription").value; form.filename.value=document.getElementById("Filedata").value; } </script> <div style="float:left; width:450px;"> <div style="font-weight:bold;font-size:24">API上传示例</div> <br/> <table style="width:50%"> <tr><td style="width:20%">Write Token: </td><td style="width:100%"><input id="yourWriteToken" size="55" value="Le1haiIrp60WacW-s5Hg60RTtFkbTf9q"/><br/> </td></tr> <tr><td>API Location: </td><td><input id="yourAPILocation" size="55" value="http://fgdf/uc/services/rest?&method=upload" /></td></tr> <tr><td>标题: </td><td><input type="text" id="name" name="title2" size="55" /></td> <tr><td>标签: </td><td><input type="text" id="shortDescription" size="55" /></td></tr> <tr><td>描述: </td><td><input id="describ" size="55" type="text"/></td></tr> <br/> <br/> <form id="create_video_sample" method="POST" ENCTYPE="multipart/form-data" target="postFrame"> <!--This is where the actual json request lives, it has to come before the file input --> <input type="hidden" name="JSONRPC" /> <input type="hidden" name="writetoken" /> <input type="hidden" name="title" /> <input type="hidden" name="describ" /> <input type="hidden" name="tag" /> <input type="hidden" name="filename" /> <input type="hidden" id="time" name="time"/> <input type="hidden" id="clientHash" name="clientHash"/> <tr><td>File:</td><td><input type="file" name="Filedata" id="Filedata"/></td></tr> </table><br/><br/> <button type="submit" id="md5bt">MD5加密</button> <br/> <button id="submitButton" onClick="doFileUpload()">Upload</button> <br/> <!--display the json request --> <fieldset> <legend>JSON Request</legend> <input name="JSONView" id="JSONView" style="width:100%;border:none"/> </fieldset><br/> </form> <br/> <fieldset> <legend>Response:</legend> <iframe id="postFrame" name="postFrame" style="width:100%;border:none"></iframe> </fieldset> <br/><br/> </div> </html> <script type="text/javascript"> <!-- $("#md5bt").click(function(){ //alert("sisisi"); $.post("clientMD5/work", {writetoken:$("#yourWriteToken").val(), title:$("#name").val(), label:$("#shortDescription").val(), describ:$("#describ").val() },function(data,statusText){ //alert(data); //var jsonObj=data;//返回JSON数据 var jsonObj=eval("("+data+")"); for(var i=0;i<jsonObj.length;i++){ $("#clientHash").attr("value",jsonObj[i].clientHash); $("#time").attr("value",jsonObj[i].clientTime); } }); }); //--> </script>
Java类:
package com.app.controller; import java.io.IOException; import java.io.PrintWriter; import java.sql.Date; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.client.HttpServerErrorException; import org.springframework.web.servlet.ModelAndView; import com.app.tools.MD5Tool; /** * * @author Qixuan.Chen */ @Controller public class VideoController { ////客户端加密处理 @RequestMapping(value="clientMD5/work",method=RequestMethod.POST) public ModelAndView md5encrypt(HttpServletRequest request,HttpServletResponse response) throws Exception{ //ModelAndView mav=new ModelAndView(); response.setContentType("text/html,charset=UTF-8"); PrintWriter out=response.getWriter(); String writetoken= request.getParameter("writetoken"); String title= request.getParameter("title"); String label= request.getParameter("label"); String depicte= request.getParameter("describ"); java.util.Date date=new java.util.Date(); SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddhhmmss"); String clientTime= sdf.format(date); String secretkey= "HN098fDVJN"; String result=writetoken+title+depicte+label+clientTime+secretkey; MD5Tool md5=new MD5Tool(); String clientHash=md5.MD5Encrypt(result); //mav.addObject("clientHash", clientHash); //mav.addObject("clientTime", clientTime); System.out.println("===writetoken====="+writetoken); System.out.println("====title===="+title); System.out.println("====label===="+label); System.out.println("====secretkey===="+secretkey); System.out.println("====clientTime====="+clientTime); System.out.println("========"+clientHash); JSONObject json = new JSONObject(); JSONArray array = new JSONArray(); JSONObject member = null; //for (int i = 0; i < 5; i++) //{ member = new JSONObject(); member.put("clientTime", clientTime); member.put("clientHash", clientHash); array.add(member); //} //json.put("mydata",array); out.print(array.toString()); out.close(); System.out.println("======"+member.toString()); //out.print(clientTime); //out.print(clientHash); return null; } }
加密类:
package com.app.tools; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5Tool { //该方法将你输入的字符串,通过md5加密,返回一个加密後的字符串 public static String MD5Encrypt(String inStr) { MessageDigest md = null; String outStr = null; try { md = MessageDigest.getInstance("MD5"); //可以选中其他的算法如SHA byte[] digest = md.digest(inStr.getBytes()); //返回的是byet[],要转化为String存储比较方便 outStr = bytetoString(digest); } catch (NoSuchAlgorithmException nsae) { nsae.printStackTrace(); } return outStr; } public static String bytetoString(byte[] digest) { String str = ""; String tempStr = ""; for (int i = 1; i < digest.length; i++) { tempStr = (Integer.toHexString(digest[i] & 0xff)); if (tempStr.length() == 1) { str = str + "0" + tempStr; } else { str = str + tempStr; } } return str.toLowerCase(); } }