首先是后台要有一个上传图片的工具类:
package utils;
import java.io.File;
import org.apache.commons.lang.StringUtils;
import play.Logger;
import play.Play;
import com.google.gson.Gson;
import com.ning.http.client.AsyncHttpClient;
import com.ning.http.client.Response;
import com.ning.http.multipart.FilePart;
import com.ning.http.multipart.StringPart;
public class PictureUploadUtils {
public static String PICTURE_SERVER = Play.configuration.getProperty(
"pic.host", "http://oss.iclass.cn/form");
public static String PICTURE_SERVER_BASEURL = "http://oss.iclass.cn/smallfiles";
private class Result {
public boolean succ;
public String html;
}
public class InfoResult {
public int width;
public int height;
}
public static String getUrlFromServer(File file) {
final AsyncHttpClient client = new AsyncHttpClient();
try {
final Response response = client.preparePost(PICTURE_SERVER)
.addBodyPart(new FilePart("qqfile", file))
.addBodyPart(new StringPart("bucketName", "smallfiles"))
.addBodyPart(new StringPart("source", "WEB")).execute()
.get();
final String responseBody = response.getResponseBody("utf8");
if (responseBody == null) {
Logger.error("[EndServer has not started.]");
} else {
Result result = new Gson().fromJson(responseBody, Result.class);
return result.html;
}
} catch (Exception e) {
Logger.error(e, e.getMessage());
} finally {
client.close();
}
return "";
}
public static InfoResult getInfoFromServer(String url) {
final AsyncHttpClient client = new AsyncHttpClient();
try {
final Response response = client.prepareGet(url + "/info")
.execute()