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();
}
}