imageFileUpload


URI

<portal_uri>/uploadfile[.<format>]

支持的方法

POST

父资源

portal

介绍

imageFileUpload 资源是上传图片文件资源,通过发送 POST 请求,可实现图片文件的上传。目前支持的图片格式为:SVG 矢量图形和 PNG、JPEG、GIF 等栅格图像文件,建议图片大小标准为265 * 170像素。

支持的方法:

支持的表述格式:RJSON、JSON、HTML、XML。

资源层次

HTTP 请求方法

对如下 URI 执行 HTTP 请求,以 rjson 输出格式为例加以说明,其中,supermapiportal 是服务器名。

http://supermapiportal:8190/iportal/web/uploadfile.rjson

POST 请求

上传图片文件,请求体为上传图片的 base64 编码。

请求参数

对 imageFileLoad 资源执行 POST 请求,上传图片文件。发送请求时,需要在请求体中传递如下参数:

名称 类型 含义

toFile

String 【必选参数】
上传的图片要存放的磁盘位置。

响应结构

对 imageFileUpload 资源执行 POST 请求,上传图片文件。返回的资源表述结构如下:

字段 类型 说明
fileName String 文件或目录的名称。
filePath String 文件或目录的绝对路径。
fileSize long 文件的大小,默认为 0 字节。
isDirectory boolean 是否是目录,默认为 false。

响应示例

下面的示例是基于 jQuery 插件 AjaxFileUpload 来实现 ajax 图片文件上传的。

  1. 上传场景的缩略图

对 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

}

  1. 上传群组的图标

对 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

}

请参见