<portal_uri>/uploadfile[.<format>]
imageFileUpload 资源是上传图片文件资源,通过发送 POST 请求,可实现图片文件的上传。目前支持的图片格式为:SVG 矢量图形和 PNG、JPEG、GIF 等栅格图像文件,建议图片大小标准为265 * 170像素。
支持的方法:
支持的表述格式:RJSON、JSON、HTML、XML。
对如下 URI 执行 HTTP 请求,以 rjson 输出格式为例加以说明,其中,supermapiportal 是服务器名。
http://supermapiportal:8190/iportal/web/uploadfile.rjson
上传图片文件,请求体为上传图片的 base64 编码。
对 imageFileLoad 资源执行 POST 请求,上传图片文件。发送请求时,需要在请求体中传递如下参数:
名称 | 类型 | 含义 |
toFile |
String | 【必选参数】
上传的图片要存放的磁盘位置。 |
对 imageFileUpload 资源执行 POST 请求,上传图片文件。返回的资源表述结构如下:
字段 | 类型 | 说明 |
fileName | String | 文件或目录的名称。 |
filePath | String | 文件或目录的绝对路径。 |
fileSize | long | 文件的大小,默认为 0 字节。 |
isDirectory | boolean | 是否是目录,默认为 false。 |
下面的示例是基于 jQuery 插件 AjaxFileUpload 来实现 ajax 图片文件上传的。
对 imageFileUpload 资源:http://localhost:8190/iportal/web/uploadfile.rjson 执行 POST 请求,请求体如下,上传场景缩略图:
//id为图片上传后的存储名称,sceneId为场景id
var id= "sceneThumbnail";
function ajaxFileUpload(id, fileName,sceneId) {
var fileUploadPathPostFix = "./resources/thumbnail/scene/",
uri = utility.getRootUrl() + "web/uploadfile.json",
uploadFileName = id + "." + fileName.split(".")[1];
uri += "?toFile=" + fileUploadPathPostFix +sceneId+"/"+ uploadFileName;
$.ajaxFileUpload({
url: uri,
secureuri: false,
fileElementId: id,
dataType: 'json',
timeout: 60 * 60 * 1000,
success: function (data, status) {
$('#result').append('上传成功');
},
error: function (data, status, e) {
$('#result').append('上传失败');
throw(e);
}
});
return false;
}
则返回的 rjson 格式的响应结果如下:
{
"fileName": "sceneThumbnail.png",
"filePath": "./resources/thumbnail/scene/12/sceneThumbnail.png",
"fileSize": 0,
"isDirectory": false
}
对 imageFileUpload 资源:http://localhost:8190/iportal/web/uploadfile.rjson 执行 POST 请求,请求体如下,上传群组的图标:
//id为图片上传后的存储名称,groupId为群组id,当群组id为空时,会生成图片的临时上传路径,newGuid()为任意随机数
var id= "logo";
function ajaxFileUpload(id, fileName,groupId) {
var fileUploadPathPostFix = "./resources/group/",
uri = utility.getRootUrl() + "web/uploadfile.json",
var uploadFileName;
if(groupId ===""){
uploadFileName = id + newGuid() +"." + fileName.split(".")[1];
uri += "?toFile=" + fileUploadPathPostFix +"temp/"+ uploadFileName;
}else{
uploadFileName = id + "." + fileName.split(".")[1];
uri += "?toFile=" + fileUploadPathPostFix +groupId+"/"+ uploadFileName;
}
$.ajaxFileUpload({
url: uri,
secureuri: false,
fileElementId: id,
dataType: 'json',
timeout: 60 * 60 * 1000,
success: function (data, status) {
$('#result').append('上传成功');
},
error: function (data, status, e) {
$('#result').append('上传失败');
throw(e);
}
});
return false;
}
则返回的 rjson 格式的响应结果如下:
{
"fileName": "logo.png",
"filePath": "./resources/group/temp/logo.png",
"fileSize": 0,
"isDirectory": false
}