鱼C论坛

 找回密码
 立即注册
查看: 4469|回复: 2

[学习笔记] 上传文件,主要是ajax方式

[复制链接]
发表于 2021-7-2 16:38:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. let express = require('express');
  2. let http = require('http');
  3. let fs = require('fs');
  4. let path = require("path");
  5. let multer = require("multer");

  6. let app = express();
  7. let upload = multer({
  8.     dest: "upload" //上传文件存放路径
  9. });

  10. app.use(express.static(path.join(__dirname, 'upload')));

  11. let singleMidle = upload.single("singleFile"); //一次处理一张
  12. let singleMidle2 = upload.single("sigfile"); //一次处理一张
  13. let arrMidle = upload.array("arrayFile", 5); //一次最多处理5张
  14. let arrMidle2 = upload.array("mulfile", 5); //一次最多处理5张
  15. app.post("/multer/singup", singleMidle, function(req, res) {
  16.     res.send(req.file);
  17. });
  18. app.post('/multer/arrup', arrMidle, function(req, res) {
  19.     console.log(req.files);
  20.     res.send(req.files);
  21. });
  22. app.post('/ajaxupload', arrMidle2, function(req, res) {
  23.     console.log(req.files);
  24.     res.send(req.files);
  25. });
  26. app.post('/ajaxsigupload', singleMidle2, function(req, res) {
  27.     console.log(req.file);
  28.     res.send(req.file);
  29. });
  30. app.get('/', function(req, res) {
  31.     res.writeHead(200, { 'Content-Type': 'text/html' });
  32.     url2 = "./testip.html";
  33.     fs.readFile(url2, 'utf-8', function(err, data) {
  34.         if (err) {
  35.             throw err;
  36.         }
  37.         res.end(data);
  38.     });
  39. })

  40. app.all('*', function(req, res, next) {  
  41.     res.header("Access-Control-Allow-Origin", "*");  
  42.     res.header('Access-Control-Allow-Headers', '*');  
  43.     res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS,PATCH");  
  44.     next();
  45. });
  46. app.listen(3000);
  47. console.log("请使用http://localhost:3000/访问主页,或者http://127.0.0.1:3000/访问主页");
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-7-2 16:38:57 | 显示全部楼层
  1. <!DOCTYPE html>
  2. <html>

  3. <head>
  4.     <meta charset="utf-8">
  5.     <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
  6.     <title>文件上传演示案例</title>
  7. </head>

  8. <body>
  9.     <form class="" action="/multer/singup" method="post" enctype="multipart/form-data">
  10.         <!--enctype="multipart/form-data"表示不会对数据本身编码,multer只处理enctype="multipart/form-data"的表单数据-->
  11.         <input type="file" name="singleFile" value="">
  12.         <input type="submit" name="" value="单一文件上传">
  13.     </form>

  14.     <form class="" action="/multer/arrup" method="post" enctype="multipart/form-data">
  15.         <input type="file" name="arrayFile" value="" multiple>
  16.         <!--multiple 可上传多张  -->
  17.         <input type="submit" name="" value="多文件上传">
  18.     </form>
  19.     <form id="sig" enctype="multipart/form-data">
  20.         <input type="file" name="sigfile" value="">
  21.         <input type="button" id="ajaxsigupload" value="AJAX单文件上传">
  22.     </form>
  23.     <form id="mul" enctype="multipart/form-data">
  24.         <input type="file" name="mulfile" value="" multiple>
  25.         <input type="button" id="ajaxupload" value="AJAX多文件上传">
  26.     </form>
  27.     <img src="upload/3.png" />
  28.     <script>
  29.         $('#ajaxupload').on('click', function() {
  30.             var type = "file";
  31.             var formData = new FormData($("#mul")[0]); //这里需要实例化一个FormData来进行文件上传
  32.             //console.log(formData);
  33.             $.ajax({
  34.                 type: "post",
  35.                 url: "/ajaxupload",
  36.                 data: formData,
  37.                 processData: false,
  38.                 contentType: false,
  39.                 success: function(hdata) {
  40.                     if (hdata) {
  41.                         var i;
  42.                         for (i = 0; i < hdata.length; i++) {
  43.                             document.write("<img src=" + hdata[i]["path"] + "/>");
  44.                         }
  45.                     } else {
  46.                         console.log("失败了");
  47.                     }
  48.                 },
  49.                 error: function(data, XMLHttpRequest, textStatus, errorThrown) {
  50.                     console.log(data);
  51.                     console.log(XMLHttpRequest.status);
  52.                     console.log(XMLHttpRequest.readyState);
  53.                     console.log(textStatus);
  54.                 }
  55.             });
  56.         });
  57.         $('#ajaxsigupload').on('click', function() {
  58.             var type = "file";
  59.             var formData = new FormData($("#sig")[0]); //这里需要实例化一个FormData来进行文件上传
  60.             console.log(formData);
  61.             $.ajax({
  62.                 type: "post",
  63.                 url: "/ajaxsigupload",
  64.                 data: formData,
  65.                 processData: false,
  66.                 contentType: false,
  67.                 success: function(hdata) {
  68.                     if (hdata) {
  69.                         console.log(hdata);
  70.                     } else {
  71.                         console.log("失败了");
  72.                     }
  73.                 },
  74.                 error: function(data, XMLHttpRequest, textStatus, errorThrown) {
  75.                     console.log(data);
  76.                     console.log(XMLHttpRequest.status);
  77.                     console.log(XMLHttpRequest.readyState);
  78.                     console.log(textStatus);
  79.                 }
  80.             });
  81.         });
  82.     </script>
  83. </body>

  84. </html>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-2 19:50:50 | 显示全部楼层
更改一个致命的代码
app.use('/upload', express.static(__dirname + '/upload'));
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-20 00:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表