REST upload()을 사용하여 이미지를 업로드 해 보았습니까?
프로덕션 용도로는 사용하지 않는 것이 좋지만 이미지를 해당 엔터티에 업로드 할 수 있는지 여부를 테스트해야합니다.
나 자신의 API를 가지고 있으므로 아래에서 개발 한 코드를 사용해 볼 수도 있습니다.
exports.postMessage = function (message) {
var serviceFile = new File(module.filename);
var parent = serviceFile.parent;
var fileFile = new File(parent, 'file-handlers.js');
switch (message.name){
case 'httpServerDidStart':
httpServer.addRequestHandler("^/api/v1/file", fileFile.path, "fileHandler");
break;
case 'httpServerWillStop':
httpServer.removeRequestHandler("^/api/v1/file", adminFile.path, "fileHandler");
break;
}
그런 다음 클라이언트 측 POST 메시지에이 같은 것을 (모듈이 'API'라고 내 경우) 그런 다음
function uploadFile(request,response){
response.contentType = 'application/json';
var i,
j=1,
nameTemp,
img,
files=[],
returnJSON = [],
newName,
folder,
filePath;
folder = getFolder('path')+'/database/data/uploads/'
for(i=0;i<request.parts.length;i++){
filePath = folder + request.parts[i].fileName.replace(/\s/g,'_');
files.push(new File(filePath));
returnJSON[i]={};
returnJSON[i].name = request.parts[i].name
returnJSON[i].value = request.parts[i].fileName;
var documentName = request.parts[i].name
//saveFileToData(filePath, imgName);
}
for(i=0;i<files.length;i++){
j=1;
var filePath;
if(!files[i].exists){
myBinaryStream = BinaryStream(files[i],'Write');
myBinaryStream.putBlob(request.parts[i].asBlob);
myBinaryStream.close();
saveFileToData(files[i].path, files[i].name);
}else{
while(files[i].exists){
nameTemp = files[i].name.replace(/\s/g,'_');
filePath = folder+files[i].nameNoExt.replace(/\s/g,'_')+j+'.'+files[i].extension
files[i] = new File(filePath);
newName = files[i].name;
if(files[i].exists){
files[i] = new File(folder+nameTemp);
}
j++;
}
myBinaryStream = BinaryStream(files[i],'Write');
myBinaryStream.putBlob(request.parts[i].asBlob);
myBinaryStream.close();
returnJSON[i].value = files[i].name; //this is the fileName
saveDocumentToData(files[i].path, nameTemp);
}
}
return returnOK(returnJSON);
}
function returnOK (returnJSON) {
returnJSON = JSON.stringify(returnJSON);
return returnJSON;
}
function saveDocumentToData(path, documentName){
var theDocumentFile = loadFile(path);
var theDocument = theDocumentFile.asPicture;
var documentEntity = ds.Document.createEntity();
documentEntity.File = path;
documentEntity.name = FileName;
documentEntity.save();
}
모듈에서하는 index.js 파일 설치 'http://localhost:8081/api/v1/file/uploadFile'을 메시지 본문에있는 이미지와 비교하십시오.
원한다면 사용해도 좋지만 주로 이미지를 파일에 업로드 할 수 있는지 테스트하는 한 가지 방법으로 포함되어 있습니다.
이 버그는 Wakanda의 2.3.0 릴리스에서 수정되었습니다. – hamzahik