CKFinder如何在选择图像(files:choose)时获取维度URL和维度(width/height)?
CKFinder how to get dimension URL and Dimension (width/height) when choosing an image (files:choose)?
我正在使用 CkFinder 3,在成功上传图像后,我需要能够在用户单击 "Chose" 按钮后进行检测:
- 文件名/id
- url
- 原始图像的宽度和高度
目前我正在使用 files:choose
但我无法在 cb 事件中找到此信息。
知道如何解决吗?代码示例将不胜感激。
CKFinder.modal( {
connectorPath: 'https://api.mysite.com/lib/ckfinder/core/connector/php/connector.php',
resizeImages: false,
startupFolderExpanded: true,
chooseFiles: true,
width: 1000,
height: 800,
language: 'en',
onInit: function( finder ) {
finder.on( 'files:choose', function( evt ) {
} );
}
} );
以用户在 evt.data.files
中选择的 files:choose
event description. You get Backbone.Collection
of files 为例。
棘手的部分是从 ImageInfo
server (using the command:send
请求中获取图像尺寸),因为它需要使用 promises 处理异步代码。
假设您只允许上传图片,示例代码如下:
// Listen to event.
finder.on( 'files:choose', function( evt ) {
// Iterate over the files collection.
evt.data.files.forEach( function( file ) {
// Send command to the server.
finder.request( 'command:send', {
name: 'ImageInfo',
folder: file.get( 'folder' ),
params: { fileName: file.get( 'name' ) }
} ).done( function( response ) {
// Process server response.
if ( response.error ) {
// Some error handling.
return;
}
// Log image data:
console.log( '-------------------' );
console.log( 'Name:', file.get( 'name' ) );
console.log( 'URL:', file.getUrl() );
console.log( 'Dimensions:', response.width + 'x' + response.height );
console.log( 'Size:', response.size + 'B' );
} );
} );
} )
如果您使用任何远程后端,例如我们的 Dropbox,您可能需要使用 file:getUrl
请求来获取文件的 URL.
我正在使用 CkFinder 3,在成功上传图像后,我需要能够在用户单击 "Chose" 按钮后进行检测:
- 文件名/id
- url
- 原始图像的宽度和高度
目前我正在使用 files:choose
但我无法在 cb 事件中找到此信息。
知道如何解决吗?代码示例将不胜感激。
CKFinder.modal( {
connectorPath: 'https://api.mysite.com/lib/ckfinder/core/connector/php/connector.php',
resizeImages: false,
startupFolderExpanded: true,
chooseFiles: true,
width: 1000,
height: 800,
language: 'en',
onInit: function( finder ) {
finder.on( 'files:choose', function( evt ) {
} );
}
} );
以用户在 evt.data.files
中选择的 files:choose
event description. You get Backbone.Collection
of files 为例。
棘手的部分是从 ImageInfo
server (using the command:send
请求中获取图像尺寸),因为它需要使用 promises 处理异步代码。
假设您只允许上传图片,示例代码如下:
// Listen to event.
finder.on( 'files:choose', function( evt ) {
// Iterate over the files collection.
evt.data.files.forEach( function( file ) {
// Send command to the server.
finder.request( 'command:send', {
name: 'ImageInfo',
folder: file.get( 'folder' ),
params: { fileName: file.get( 'name' ) }
} ).done( function( response ) {
// Process server response.
if ( response.error ) {
// Some error handling.
return;
}
// Log image data:
console.log( '-------------------' );
console.log( 'Name:', file.get( 'name' ) );
console.log( 'URL:', file.getUrl() );
console.log( 'Dimensions:', response.width + 'x' + response.height );
console.log( 'Size:', response.size + 'B' );
} );
} );
} )
如果您使用任何远程后端,例如我们的 Dropbox,您可能需要使用 file:getUrl
请求来获取文件的 URL.