node.js实现图片上传,且不接受其他形式的文件

本文介绍了如何使用Node.js实现图片上传功能,并通过添加后缀名过滤代码,确保服务器只接受图片文件,避免非图片文件被存储。前端通过AJAX提交文件,后端使用formidable包处理上传,关键在于判断文件类型并删除不符合条件的文件。
摘要由CSDN通过智能技术生成

最近遇到nodeJS的图片上传需要,本想图方便直接百度(google都不屑于用),很快就能搞定,开始也一帆风顺,布置好前后端代码之后的确实现了图片上传。

然而当我手贱将一个.exe文件也上传的时候,发现服务器也照样接受,没有任何过滤措施,这还了得!强迫症发作之后我决定自己加入后缀名过滤代码,除了图片类型文件其余一概不予存储。下文记录我的解决方式,完成nodeJS只接受图片的文件上传。

首先前端通过表单接受本地文件,然后通过onchange监听,调用uploadByForm方法ajax提交文件到服务端,都是老套路:

<form role="form" id="myForm" action="http://v0.api.upyun.com/xxx" method="post" enctype="multipart/form-data">

  <input type="hidden" name="policy" value="">
  <input type="hidden" name="signature" value="">

  <div class="form-group">
    <label class="col-sm-2 control-label">说明:</label>

    <div class="col-sm-10">
      <p class="form-control-static ">ajax 文件上传 。</p>
    </div>
  </div>
  <div class="form-group">
    <label for="url" class="col-sm-2 control-label"><s>*</s>图片选择:</label>

    <div class="col-sm-7">
      <input type="file" name="fulAvatar" id="file_upload" value=""
             class="form-control" placeholder="图片地址" οnchange="uploadByForm();">
    </div>
  </div>

  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-7">

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值