2014-02-11 76 views
0

我一直在使用Node.js進行一個項目,一切都一直很順利。我使用快遞以及節點。總體而言,我的目標非常簡單...將圖像上載到服務器的上傳文件夾中。奇怪的是上傳本身實際上工作,但是當我去使用「重命名」功能它說路徑是錯誤的/權限與這個錯誤:ENOENT。OSX Node.js文件上傳ENOENT

我也測試過,通過調用read函數來檢查文件路徑,以確保路徑100%正確。似乎只有當它試圖修改文件,所以我推斷這是一個權限問題(除非對重命名函數有某種特殊要求)。我注意到每次文件上傳時,權限都設置爲「自定義」,並且只爲每個用戶授予讀取權限,但用戶名除外。我會發布這類關係到下面這個問題的代碼:

/app/routes.js

var fs = require('fs'); 

app.post('/api/file-upload/:page_id', function(req, res) { 
    // fs.readFile(tmp_path, function (err, data) { 
     // if (err) throw err; 
     // console.log(data); 
     // }); 

    var target_path = './public/images/' + req.files.featuredimg.name; 

    fs.rename(req.files.featuredimg.path, target_path, function(err) { 
     if (err) throw err; 
     fs.unlink(tmp_path, function() { 
      if (err) throw err; 
      res.send('File uploaded to: ' + target_path + ' - ' + req.files.featuredimg.size + ' bytes'); 
     }); 
    }); 
}); 

server.js

app.use(express.bodyParser({uploadDir:'./uploads'})); 

一切都在根文件夾結束了旁邊服務器.js in/uploads按預期工作。我似乎無法修改它們。我試過了我能想到的所有東西,並查找了問題。希望這是一個簡單的修復。

希望有人能幫我解決這個問題。我真的很感激它!

+0

確保你有'圖像'文件夾在公共。我有類似的問題。 –

+0

非常感謝!我真的認爲它與第二個參數無關,因爲它一直說第一個是問題。 – Nightshayde

+0

對不起,延遲,使用本網站一點點新 – Nightshayde

回答

0

確保你已經創建了圖片文件夾在public。我有類似的問題。