[javascript] 자바스크립트로 파일 업로드 및 다운로드 중 파일 저장 경로 지정하기
파일 업로드 및 다운로드는 웹 애플리케이션에서 흔히 사용되는 기능입니다. 여기에는 파일을 서버에 업로드하고 사용자가 해당 파일을 다운로드할 수 있어야 합니다. 때로는 업로드된 파일의 저장 경로를 지정해야 할 수도 있습니다. 이 글에서는 Node.js를 사용하여 파일 업로드 및 다운로드 중 파일 저장 경로를 지정하는 방법에 대해 알아보겠습니다.
파일 업로드
먼저, Express와 multer 패키지를 사용하여 Node.js 애플리케이션에서 파일을 업로드하는 방법을 살펴보겠습니다.
const express = require('express');
const multer = require('multer');
const upload = multer({ dest: 'uploads/' });
const app = express();
app.post('/upload', upload.single('file'), (req, res) => {
res.send('File uploaded successfully.');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
위의 코드에서, multer를 사용하여 파일 업로드를 처리하고 dest
옵션을 사용하여 업로드된 파일이 저장될 경로를 지정할 수 있습니다.
파일 다운로드
이제 파일을 다운로드하는 방법을 살펴보겠습니다.
const express = require('express');
const app = express();
const path = require('path');
app.get('/download', (req, res) => {
const filePath = '/uploads/example.pdf'; // 다운로드할 파일의 경로
res.download(path.join(__dirname, filePath));
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
위의 코드에서는 클라이언트가 /download
엔드포인트에 요청을 보내면 서버에서는 지정된 파일을 다운로드할 수 있도록 합니다.
파일 저장 경로 지정
파일 저장 경로를 지정하려면 multer
설정에서 dest
옵션을 사용하여 업로드된 파일이 저장될 경로를 지정하면 됩니다.
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'custom/path/') // 파일이 저장될 경로
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now())
}
})
const upload = multer({ storage: storage });
위의 코드에서는 multer
를 사용하여 파일이 저장될 경로 및 파일명을 지정할 수 있습니다.
이제 여러분은 Node.js를 사용하여 파일을 업로드 및 다운로드하고, 파일이 저장될 경로를 지정하는 방법에 대해 알게 되었습니다. 이제 이를 활용하여 웹 애플리케이션에서 파일 관리 기능을 보다 유연하게 구현할 수 있을 것입니다.