ExpressJs上传文件

今天用ExpressJs上传文件的时候,搜了好多博文但是总是不成功,最后终于试成功了,真的很简单,只是有几个注意的点,这里就这些点简单介绍。

第一、我这是在windows 7的环境下,不知道linux环境下如何,不过应该大同小异了;

第二、在客户端的表单提交中记得添加这样一个属性,enctype=“multipart/form-data”,简单代码如下:

 <form action="/uploadImg" method="post" id="upload" enctype="multipart/form-data">
         <input type="file" name="uploadImg"/>
         <input type="submit" value="upload"/>
    </form>

第三、服务端读取文件,服务端读取文件跟读取表单的方式是类似的,req.files.元素name,若我们希望上传文件到默认的文件夹下(例如:./uploads),那么我们可以在app.js中的app.use(express.bodyParser())改成app.use(express.bodyParser(‘./uploads’)),在此注意:uploads目录必须存在,否则会报错;

第四、获取上传文件的基本信息,req.files.元素name.path:默认路径,.name:文件名,.size:文件大小等等

第五、如果要修改文件路径,需要用到fs文件,var fs = require("fs");如下服务端超级简单的代码:

app.post("/uploadImg",function(req,res){
        console.log("文件默认属性:"+req.files.uploadImg);
        var obj = req.files.uploadImg;
        var tmp_path = obj.path;
        var new_path = "./public/images/"+obj.name;
        console.log("原路径:"+tmp_path);
        fs.rename(tmp_path,new_path,function(err){
            if(err){
                throw err;
            }
        })
    });

其实这一段代码是获取默认路径tmp_path,设定目标新路径new_path,再调用fs.rename()即可将文件的默认路径改成目标路径,并且原路径中的文件必然就没了。

就那么简单。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值