node +express4 +multiparty 구현 파일 서버에 업로드

2983 단어
[ TOC ]

원인:


최근 유전자 비교 프로젝트를 개발하고 있기 때문에 로컬 파일을 서버에 업로드한 다음 그 중의 데이터를 읽고 데이터베이스에 있는 데이터와 비교하여 유사도를 계산해야 한다.

소프트웨어 개발


Mac + webstrom(2017.1.3) + node(v8.2.0)

실현 과정


step1: 웹strom 새 빈 항목을 엽니다. upload라고 명명하고 Terminal에 다음 명령을 입력하십시오.
npm init( enter)

npm install express --save-dev
npm install ejs --save-dev
npm install fs --save-dev
npm install multiparty --save-dev

step2: 파일 디렉터리를 만들고views 폴더 아래에 index를 추가합니다.html 파일은 다음 그림과 같습니다.
upload
....node_modules
....uploads
....views
    ....index.html
....app.js
....package.json
....package-lock.json

step3: 앱 작성.js 파일
// 
var express = require('express'),
    path = require('path'),
    ejs = require('ejs'),
    fs = require('fs'),
    multiparty = require('multiparty'),
    app = express();

// 
app.engine('.html', ejs.renderFile);
app.set('view engine', 'html');
// 
app.set('views', path.join(__dirname, 'views'));

// index.html 
app.get('/', function (req, res) {
    res.render('./index');
});

app.post('/upload', function (req, res) {
    var form = new multiparty.Form({uploadDir: './uploads'});
    form.parse(req, function(err, fields, files) {
        var fileOriginalFilename = files.thumbnail[0].originalFilename;
        var filePath = files.thumbnail[0].path;
        var dstPath = './uploads/' + fileOriginalFilename;
        fs.rename(filePath, dstPath, function (err) {
            if (err) {
                console.log('rename error: ' + err);
            } else {
                console.log('rename ok');
            }
        });
        res.send('upload success');
    });
});

// web , "http://localhost:3002"
var server = app.listen(3002, function () {
    var host = server.address().address;
    var port = server.address().port;
    console.log('App listening at http://%s%s', host, port);
});

step4: 인덱스 작성.html 파일



    
    upload


// name="thumbnail", step3 "files.thumbnail[0].fieldName;",thumbnail
// $('#formOne').bind('submit', function () { var fileValue = $('#file').val(); if (!fileValue) { alert(" "); return false; } })

이제 모두 완료되었습니다. Terminal에 node app을 입력하십시오.js는 서버를 시작할 수 있습니다. 업로드된 파일은 uploads 폴더에 있습니다.


Github 소스
https://github.com/SevenTrap/upload

좋은 웹페이지 즐겨찾기