android - nodejs 是如何处理post来的图片 使其放入 /public/images 里的?
PHP中文网
PHP中文网 2017-04-17 16:44:27
0
6
781
PHP中文网
PHP中文网

认证0级讲师

모든 응답(6)
洪涛

표현

양식 添加这个:enctype="multipart/form-data"

입력(유형="파일")

사용

var multiparty = require('connect-multiparty')
var multipartMiddleware = multiparty();

路由
app.post('/movie/save',multipartMiddleware,Movie.savePoster,Movie.save)

imports.savePoster = function(req, res, next) { var PosterData = req.files.uploadPoster var filePath = 포스터데이터.경로 var originalFilename = 포스터데이터.originalFilename if (원본파일명) { fs.readFile(filePath, function(err, data) { var 타임스탬프 = Date.now() var 유형 = PosterData.type.split('/')[1] var 포스터 = 타임스탬프 + '.' + 유형 **//특정 사용자 정의** var newPath = path.join(__dirname, '../../', '/file/images/' + 포스터) fs.writeFile(newPath, 데이터, 함수(err) { // 사용자 정의 req.poster = 포스터 다음() }) }) } 또 다른 { 다음() } } 最后可以参考:http://www.imooc.com/learn/197中关于上传海报的章节视频,这个是过期的,后面一章有升级적방법
巴扎黑

node express에는 자동으로 구문 분석하는 업로드 플러그인이 있으므로 디렉토리만 제공하면 되며 매우 간단합니다.

小葫芦

업로드된 이미지를 간단하고 명확하게 분석하려면 formidable을 사용하세요. npm에서 이 모듈의 API를 살펴보세요

巴扎黑

express는 connect-busboy를 사용하여 이미지 업로드의 multipart/* 데이터를 처리합니다.

샘플 코드 데모는 다음과 같습니다

阿神

formidable을 사용하는 것이 좋습니다. 지난 며칠간 연습한 결과 formidable의 API 디자인은 더 합리적이고 더 많은 사용자 정의 작업을 용이하게 합니다. 가장 중요한 것은 여러 파일 업로드를 지원한다는 것입니다.
connect-busboy는 위의 장점이 없으며 멀티파트를 지원하지 않습니다

小葫芦
 app.post('/ava',multipart(),function(req, res){
        var filename = req.files.avatar.originalFilename || path.basename(req.files.avatar.path);
        var targetPath = 경로명 + '/image_repository/avatar/' + 파일명;
        fs.createReadStream(req.files.avatar.path).pipe(fs.createWriteStream(targetPath));
        var _url = '/avatar/' + 파일명;
        console.log(_url);
        console.log(targetPath);
        var _name = req.session.user;
        //사용 모듈 방법 保存数据
        User.update({name:_name},{$set:{avatar:_url}},function(err){
            만약 (err) throw err;


        });
        res.json({
            코드타입 : 200,
            msg:{url:'http://' + req.headers.host + '/' + 파일 이름},
            URL:_url
        });
        //사용 엔터티 방법保存数据,效果상동
        //User.findOne({name:_name},function(err, doc){
        // (err)이면 throw err;
        // if (문서){
        // doc.set({avatar:targetPath});
        // doc.save();
        //    }또 다른{
        // console.log('사용자 없음');
        // }
        //});
        //res.json({
        // 코드 유형 : 200,
        // msg:{url:'http://' + req.headers.host + '/' + 파일 이름},
        // URL:_url
        //});
        //var _img = req.files;
        // console.log(_img);
        //res.json(_img);
    });

이미지를 이전에 사용하는 양식 데이터를 사용하여 유용한 정보를 확인하세요.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿