Wiem, że pytanie zostało zapytane, ale mój umysł został wydmuchowany przez moją niezdolność, aby uzyskać tę pracę. Próbuję przesłać wiele zdjęć na mój serwer z poniższym kodem:

var formidable = require('formidable');
var fs = require('fs');

...

router.post('/add_images/:showcase_id', function(req, res){
    if(!admin(req, res)) return;
    var form = new formidable.IncomingForm(),
    files = [];


    form.uploadDir = global.__project_dirname+"/tmp";
    form.on('file', function(field, file) {
        console.log(file);

        file.image_id = global.s4()+global.s4();
        file.endPath = "/img/"+file.image_id+"."+file.type.replace("image/","");
        files.push({field:field, file:file});
    });
    form.on('end', function() {
        console.log('done');
        console.log(files);
        db.get("SOME SQL", function(err, image_number){
            if(err){
                console.log(err);
            }
            var db_index = 0;
            if(image_number) db_index = image_number.image_order;
            files.forEach(function(file, index){
                try{
                    //this line opens the image in my computer (testing)
                    require("sys").exec("display " + file.file.path);
                    console.log(file.file.path);
                    fs.renameSync(file.file.path, file.file.endPath);
                }catch (e){
                    console.log(e);
                }
                db.run( "SOME MORE SQL"')", function(err){
                    if(index == files.length)
                        res.redirect("/admin/gallery"+req.params.showcase_id);
                });
            });
        });
    });
    form.parse(req);
});

Linia, która otwiera obraz za pomocą połączeń systemowych działa tylko w porządku, jednak nadal otrzymuję: Error: ENOENT, no such file or directory '/home/[username]/[project name]/tmp/285ef5276581cb3b8ea950a043c6ed51' przez oświadczenie o zmienności.

Wartość pliku.file.path to: /home/[username]/[project name]/tmp/285ef5276581cb3b8ea950a043c6ed51

Jestem tak zdezorientowany i próbowałem wszystkiego. Co ja robię źle?

2
Joseph Dailey 14 sierpień 2014, 19:31

1 odpowiedź

Stwierdziłeś formę. W związku z tym pamiętaj, że groźny nie działa z pudełka z tylko nodejs. Chyba że miałbyś użyć czegoś takiego jak moduł monitu do wejścia. Jeśli używasz HTML, potrzebujesz czegoś takiego jak kąt, reagować lub przeglądarki, aby móc podać mu dostęp do interfejsu.

-1
Konkret 10 listopad 2018, 17:17