Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未使用多方定义的文件_Javascript_Node.js_Express - Fatal编程技术网

Javascript 未使用多方定义的文件

Javascript 未使用多方定义的文件,javascript,node.js,express,Javascript,Node.js,Express,我想使用node.js上传img,我使用的是express和multiparty,我的代码如下 html 当我上传东西时,它会抛出错误 无法读取未定义的属性图像 作为后端新手,我不知道为什么会发生这种情况,目录img存在于html和js所在的文件夹中。将enctype添加到表单: <form method="post" action="/img" enctype="multipart/form-data"> PS:对于上传图像,我建议您使用,类似的。您可以使用multer上传

我想使用node.js上传img,我使用的是express和multiparty,我的代码如下

html

当我上传东西时,它会抛出错误

无法读取未定义的属性图像

作为后端新手,我不知道为什么会发生这种情况,目录img存在于html和js所在的文件夹中。

将enctype添加到表单:

<form  method="post" action="/img" enctype="multipart/form-data">


PS:对于上传图像,我建议您使用,类似的。

您可以使用multer上传文件,请参阅下面的代码,前端:

<html>
<head>
<title>FileUpload</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<form id       =  "uploadForm"
     enctype   =  "multipart/form-data"
     action    =  "http://localhost:3000/api/photo"
     method    =  "post"
>
<input type="file" name="userPhoto" multiple />
<input type="submit" value="Upload Image" name="submit" id="btnUpload">
<span id="spnStatus" />
</form>

<script>
        $(document).ready(function(){
            $('#btnUpload').click(function(){
                $('#spnStatus').empty().text("File is Uploading");
                $(this).ajaxSubmit({
                 error : function(xhr){
                    status('Error : '+xhr.status);
                    }

                 success : function(response){
                    $('#spnStatus').empty().text(xhr);
                    }
                });
            });

        });
    </script>
</body>
</html>
如果需要,您可以同时上载多个文件,例如将userPhoto增加到5
var upload=multer({storage:storage}).array('userPhoto',5)

<form  method="post" action="/img" enctype="multipart/form-data">
<html>
<head>
<title>FileUpload</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<form id       =  "uploadForm"
     enctype   =  "multipart/form-data"
     action    =  "http://localhost:3000/api/photo"
     method    =  "post"
>
<input type="file" name="userPhoto" multiple />
<input type="submit" value="Upload Image" name="submit" id="btnUpload">
<span id="spnStatus" />
</form>

<script>
        $(document).ready(function(){
            $('#btnUpload').click(function(){
                $('#spnStatus').empty().text("File is Uploading");
                $(this).ajaxSubmit({
                 error : function(xhr){
                    status('Error : '+xhr.status);
                    }

                 success : function(response){
                    $('#spnStatus').empty().text(xhr);
                    }
                });
            });

        });
    </script>
</body>
</html>
var express =   require("express");
var multer  =   require("multer");
var bodyParser =    require("body-parser");
var app =   express();
app.use(bodyParser.json());

 var storage =   multer.diskStorage({
  destination: function (req, file, callback) {
    callback(null, './uploads');
  },
  filename: function (req, file, callback) {
    callback(null, file.fieldname + '-' + Date.now());
  }
});
var upload = multer({ storage : storage }).array('userPhoto',1);

app.get('/',function(req,res){
      res.sendFile(__dirname + "/fileUpload.html");
});

app.post('/api/photo',function(req,res){

          upload(req,res,function(err) {
            if(err) {
                return res.end("Error uploading file.");
            }
            res.end("File is uploaded");
         });
});

app.listen(3000,function(){
    console.log("Working on port 3000");
});