我loopback
用于将Image存储到server
。
我想 修改 该 文件的名称 得到保存到服务器之前的文件。
我也想在保存之前将其转换为其他缩略图形式。
这是我的工作方式。
在客户端
Upload.upload(
{
url: '/api/containers/container_name/upload',
file: file,
fileName: "demoImage.jpg",
//Additional data with file
params:{
orderId: 1,
customerId: 1
}
});
在服务器端,我收到查询“ params”,但未获取“文件名”
我的存储型号名称是 container
Container.beforeRemote('upload', function(ctx, modelInstance, next) {
//OUPTUTS: {orderId:1, customerId:1]}
console.log(ctx.req.query);
//Now I want to change the File Name of the file.
//But not getting how to do that
next();
})
如何更改要保存在服务器上的文件的文件名?
我想到了。
我们必须定义一个自定义函数 的getFileName 在boot/configure-storage.js
。
假设我的 数据源 的loopback-component-storage
是 presImage 。
服务器/引导/配置存储.js
module.exports = function(app) {
//Function for checking the file type..
app.dataSources.presImage.connector.getFilename = function(file, req, res) {
//First checking the file type..
var pattern = /^image\/.+$/;
var value = pattern.test(file.type);
if(value ){
var fileExtension = file.name.split('.').pop();
var container = file.container;
var time = new Date().getTime();
var query = req.query;
var customerId = query.customerId;
var orderId = query.orderId;
//Now preparing the file name..
//customerId_time_orderId.extension
var NewFileName = '' + customerId + '_' + time + '_' + orderId + '.' + fileExtension;
//And the file name will be saved as defined..
return NewFileName;
}
else{
throw "FileTypeError: Only File of Image type is accepted.";
}
};
}
common / models / container.js
现在假设我的容器模型是container
。
module.exports = function(Container) {
Container.afterRemote('upload', function(ctx, modelInstance, next) {
var files = ctx.result.result.files.file;
for(var i=0; i<files.length; i++){
var ModifiedfileName = files[i].name;
console.log(ModifiedfileName) //outputs the modified file name.
} //for loop
next();
}); //afterRemote..
};
现在将其转换为 缩略图大小
下载quickthumb
这是将其与环回一起使用的方法。
此代码直接从“
回送”缩略图视图复制
common / models / container.js
module.exports = function(Container) {
var qt = require('quickthumb');
Container.afterRemote('upload', function(ctx, res, next) {
var file = res.result.files.file[0];
var file_path = "./server/storage/" + file.container + "/" + file.name;
var file_thumb_path = "./server/storage/" + file.container + "/thumb/" + file.name;
qt.convert({
src: file_path,
dst: file_thumb_path,
width: 100
}, function (err, path) {
});
next();
});
};
我从InputStream中获取字节,但需要修改并保存到Wav文件中。 AudioInputStream(InputStream流,AudioFormat格式,长长度) AudioSystem.write(AudioInputStream stream,AudioFileFormat.type fileType,File out) 问题是:
获得并应用修改 编译qemu还会用到的库文件有 libsdl1.2-dev 等。安装命令如下: sudo apt-get install libsdl1.2-dev # 安装库文件 libsdl1.2-dev 获得 qemu 的安装包以后,对其进行解压缩(如果格式无法识别,请下载相应的解压缩软件)。 例如 qemu.tar.gz/qemu.tar.bz2 文件,在命令行中可以使用: tar
问题内容: 我从动画gif中读取了分离的图像,我只需要对其进行更改,然后将其设置回文件,并与编写者一起另存为新文件。 我会很高兴为您提供任何帮助。 问题答案: Tanks @StanislavL 在评论中提供了链接(https://community.oracle.com/thread/1264385),这确实很有帮助。有我的解决方案:
Storage component (存储组件) 简介 安装 案例 Containers 和 文件 创建一个存储组件的数据源 使用命令行工具和JSON 使用 JavaScript配置 提供凭据 简介 该存储组件 能够使得应用方便的上传,下载 与 云存储提供商和本地服务器。 它有 Node.js 和 REST API 存储管理二进制内容,支持的云供应商有: 亚马逊 Rackspace公司 OpenS
我遇到的问题与本问题中提到的问题相反:获取文件的公共URL-Google云存储-App Engine(Python)
LoopBack 是基于 Node.js 的一个开源的 API 框架,可以让 Node.js 应用方便的跟各种设备通过 API 进行互联。 特性: On-premises or in the cloud Create dynamic REST APIs Unlock enterprise data for mobile apps Push, geolocation, and file servic