nodejs-tw / ama

Ask me anything!
MIT License
31 stars 1 forks source link

圖片上傳-2016/05/02 #2

Open balloonchen opened 8 years ago

balloonchen commented 8 years ago

感謝使用 Node.js Taiwan AMA,以下附上簡單提問範例供參考,請把內容改成你自己遇到的問題

目的

各位好。 我正在做一個小型部落格,想要實作一個能讓會員上傳大頭照的功能。 上傳後,像眾多社群網站那樣,會員名稱的旁邊會有那個大頭貼。

使用的工具

作業系統是:Win8.1 使用npm install formidable

操作流程

按照參考書籍做的,執行上沒有問題,也確實能夠透過req.files抓到檔案資訊。 例如:透過console.log(req.files),能得到類似以下資訊:

{ photo:
    File{
        domain: null,
        _events: {},
        _eventsCount: 0,
        _maxListeners: undefined,
        size: 63383,
        path: 'C:\\Users\\E1\\AppData\\Local\\Temp\\upload_ab9ae6056ae57ac13330227e38510a25',
        name: 'xxx.jpg',
        type: 'image/jpeg',
        hash: null,
..........
    }
}

遇到的問題

不太明白,所以這樣算是成功上傳了嗎? 我可以把console.log()改為把整個req.files物件存進mongodb的資料庫裡, 可是,不論是顯示在終端機或存進資料庫做永久保存, 這樣好像都只是一段描述圖片的json檔而已? 那麼,原圖到底在哪裡? 我要怎麼輸出原圖呢? 我真正想要的,是在使用者上傳照片後, 不論照片是存在資料庫或是整個網站專案中的某個資料夾裡, 往後能夠直接透過輸出該圖片給使用者。

嘗試過的解法

我上網找了一些檔案上傳的教學, 不論是透過body-parser, connect-form等套件實作, 最終好像也都是能得到一個req.files。 我仍然不明白我拿到這個物件,甚至把它存到資料庫裡後, 我到底該怎麼使用它,讓它不要只是文字輸出,而是原來圖片輸出?

感謝各位。 祝好 2016/05/02

dca commented 8 years ago

Hi,

你得到 req.files 的時候,他就已經上傳成功了!檔案就在 path 這個欄位的位置。 當然你也可以透過套件的設定,或者試著寫一小段程式,把檔案移動到你想要存放的位置!

balloonchen commented 8 years ago

dca 你好:

真是一語點醒夢中人,我終於找到檔案,也能夠移動它了! 非常感謝你 ^__^