2016-09-12 114 views
0

我正在使用CKEditor插件将图像上传到我的OpenShift应用程序,但应用程序不会上传文件。它在本地很好地工作,但我无法确定是什么导致了问题。它似乎无法找到目录。无法在OpenShift上传文件

==>应用程序根/日志/ nodejs.log < == POST /上传的CKEditor =内容& CKEditorFuncNum = 1 &的langCode = EN - - 质谱 - - 新路径:在/ var/lib中/ openshift /57cdb2770c1e660d0b000003/app-root/runtime/repo/routes/../public/uploads/test.jpg

{ERR: {[错误:ENOENT,开放式“的/ var/lib中/ openshift/57cdb2770c1e660d0b000003/APP- root/runtime/repo/routes /../ public/uploads/test.jpg'] errno:34, code:'ENOENT', path:'/ var/lib/openshift/57cdb2770c1e660d0b000003/app-root/runtime /repo/routes/../public/uplo ads/test.jpg'}}

这是处理上传的路由。

var express = require('express'); 
 
var router = express.Router(); 
 
var multipart = require('connect-multiparty'); 
 
var multipartMiddleware = multipart(); 
 
var fs = require('fs'); 
 

 
router.post('/', multipartMiddleware, function(req, res) { 
 

 
    fs.readFile(req.files.upload.path, function(err, data) { 
 

 
    var newPath = __dirname + '/../public/uploads/' + req.files.upload.name; 
 

 
    console.log('new Path:', newPath); 
 

 
    fs.writeFile(newPath, data, function(err) { 
 

 
     if (err) console.log({ 
 
     err: err 
 
     }); 
 
     else { 
 
     html = ""; 
 
     html += "<script type='text/javascript'>"; 
 
     html += " var funcNum = " + req.query.CKEditorFuncNum + ";"; 
 
     html += " var url  = \"/uploads/" + req.files.upload.name + "\";"; 
 
     html += " var message = \"Uploaded file successfully\";"; 
 
     html += ""; 
 
     html += " window.parent.CKEDITOR.tools.callFunction(funcNum, url, message);"; 
 
     html += "</script>"; 
 

 
     res.send(html); 
 
     } 
 
    }); 
 
    }); 
 
}); 
 

 
module.exports = router;

回答

0

不知道如何运作OpenShift但也许你没加你的公共/ uploads目录的项目/回购/但它被安装在OpenShift服务器。

+0

是的。这是问题所在。当我从本地上传目录中删除文件时,它将它从OpenShift中删除。我不认为它会这样做。感谢您及时的回复! – user3183411