node . js实现文件上传的示例

  

文件上传指的是将用户本地的文件上传到服务器中。
  

  

上传文件需要处理两个位置:

  

<强>客户端

  
      <李>客户端如何上传文件?李   <李>上传文件的表单项需要指定为输入,类型是文件   <李>要上传文件必须将表单enctype设置为多部分/格式这个参数表示表单将会以多部件表单的形式上传enctype=坝τ贸绦?x-www-form-urlencoded”是默认值。这个值的意思指将会对表单项的内容进行url编码,所谓url编码就将请求参数转换为二进制编码。   
  

1,多部分/格式体无法解析,乘模块专门用来帮助我们解析多部件的请求体。
  

        & lt; body>      & lt; h3>文件上传(文件上传)& lt;/h3>   & lt;形式action="/testUpload " method=" post " enctype="多部分/格式" id=靶问健痹?   & lt; pre>   你好先生& lt;输入类型=拔谋尽眓ame="用户名"/比;         upupup & lt;输入类型="文件" name="照片"/比;         & lt;输入类型="提交" value=" https://www.yisu.com/zixun/提交" id=癰tn”比;   & lt;/pre>   & lt;/form>//利用AJAX上传文件   & lt; script>      var btn=. getelementbyid (btn);   btn。onclick=function () {//FormData这个对象可以用来对表单中的数据进行封装//使用FormData来对表单中的数据进行包装   var fd=new FormData (. getelementbyid(“形式”));//创建一个xhr对象   var xhr=new XMLHttpRequest ();//设置请求的地址   xhr。打开(“文章”、“/testUpload”);//发送请求   xhr.send (fd);//接收响应   xhr。onreadystatechange=function () {   如果(xhr。readyState==4,,xhr。状态==200){   警报(xhr.responseText);   }   };//取消默认行为   返回错误;   };      & lt;/script>   & lt;/body>      之前      

2。服务器端

        const表达=要求(“表达”);   const应用=表达();   const bodyParser=要求(“体”);   const乘=要求(“相乘”);   app.use (bodyParser.urlencoded({扩展:假}));   app.use (bodyParser.json ());   app.use (express.static(“公共”));   常量存储=multer.diskStorage ({//目的地用来设置上传文件的路径可以接收一个回调函数,或者一个字符串//如果传递一个回调函数的话,则需要确保路径有效   目的地:上传/,//文件名属性可以用来指定文件上传以后保存到服务器中的名字   文件名:功能(要求、文件、cb) {//cb (null,文件。字段名+“-”+ Date.now ())//获取文件的扩展名//Chrysanthemum.jpg   让?file.originalname;   让extName=" ";//判断文件是否具有扩展名   如果(fname.lastIndexOf (“。”) !=1) {   extName=fname.slice (fname.lastIndexOf (“。”);   }//上传文件时,一般不会直接将用户的文件名直接保存的服务器中//一般会随机生成一个文件名   cb (null,文件。字段名+“-”+ Date.now () + extName);   }   })   const上传=相乘(   {   存储:存储、   限制:{//限制文件的大小为200 kb   文件大小:1024 * 200   }   });   app.post (“/testUpload”(点播,res)=祝辞{//获取解析请求体的函数   让傅=upload.single(照片);//手动调用函数来解析请求体   傅(点播,res (err)=祝辞{   如果(err) {//证明上传出错了,文件大小超标   res.send(“文件太大了,请上传200 kb以下的文件! !”);   其他}{//读取请求参数   让用户名=req.body.username;   res.send(“上传成功~ ~ ~”);   }   });   });   app.listen(3333年,()=祝辞{   console.log(“成功”);   });      之前      

文件夹示例

  

节点。js实现文件上传的示例
  

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

node . js实现文件上传的示例