应无所住,而生其心
排名
1
文章
861
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

input 文件上传类型限制。上传图片预览,获取上传文件名称,获取上传文件的后缀名,限制文件大小等

5942人阅读 2020/9/19 19:19 总访问:5238480 评论:0 收藏:0 手机
分类: 前端

限制只能上传图片
image/*

  1. <input type="file" name="file" id="choiseFile" accept="image/*">

限制单一类型的图片

  1. <!--只允许jpg类型的图片文件-->
  2. <input type="file" name="Files" accept="image/jpeg" />

限制只能传递文本文件

  1. <!--只允许文本文件-->
  2. <input type="file" name="Files" accept="text/plain" />

限制某些后缀的文件

  1. <input type="file" name="file" id="uploadAppendixInp" accept=".xls,.doc,.txt,.pdf,.zip,.rar">

后面有使用js限制的方式

上传图片预览

  1. //图片预览
  2. $("#choiseFile").on('change', function () {
  3. //获取文件
  4. var file = this.files[0];
  5. //读取文件
  6. if (window.FileReader) {
  7. var reader = new FileReader();
  8. reader.readAsDataURL(file);
  9. //监听文件读取结束后事件
  10. reader.onloadend = function (e) {
  11. let htmlToAppend = '<div class="img-preview-wapper"><img src="' + e.target.result + '" class="img-preview" alt=""><span class="img-preview-close"><img src="https://smartedu-apis.cqzuxia.com/asserts/img/error.png" alt=""></span></div>';
  12. $(".img-preview-wapper-blank").before(htmlToAppend)
  13. //调用上传图片的接口
  14. upLoadImg()
  15. //$("#imgShow").attr('src', e.target.result);
  16. };
  17. }
  18. })

获取上传文件名称

  1. //附件名称预览
  2. $("#uploadAppendixInp").on('change', function () {
  3. //获取文件
  4. var file = this.files[0];
  5. //读取文件
  6. if (window.FileReader) {
  7. var reader = new FileReader();
  8. reader.readAsDataURL(file);
  9. //监听文件读取结束后事件
  10. reader.onloadend = function (e) {
  11. //获取上传的文件名
  12. let fileName = file.name;
  13. $("#uploadAppendix a").html(fileName)
  14. //调用上传附件的接口
  15. upLoadAppendix(fileName)
  16. };
  17. }
  18. })

获取上传文件后缀,限制上传文件类型

  1. $("#uploadAppendixInp").on('change', function () {
  2. //获取文件
  3. var file = this.files[0];
  4. //读取文件
  5. if (window.FileReader) {
  6. var reader = new FileReader();
  7. reader.readAsDataURL(file);
  8. //监听文件读取结束后事件
  9. reader.onloadend = function (e) {
  10. //获取上传的文件名
  11. let fileName = file.name;
  12. //获取文件的后缀名
  13. let filextend = fileName.substring(fileName.lastIndexOf("."));
  14. let filetypes = [".rar", ".zip"];
  15. if (filetypes.indexOf(filextend) < 0) {
  16. alert("上传类型不支持,请重新选择")
  17. return
  18. }
  19. $("#uploadAppendix a").html(fileName)
  20. //调用上传附件的接口
  21. //upLoadAppendix(fileName)
  22. };
  23. }
  24. })

限制文件大小

  1. //限制文件上传的大小
  2. let filemaxsize = 1024*20;//20M
  3. var fileSize = file.size / 1024;
  4. if(fileSize>filemaxsize){
  5. alert("附件大小不能超过"+filemaxsize/1024+"M!!!");
  6. return
  7. }

完整一点的

  1. //附件名称预览
  2. $("#uploadAppendixInp").on('change', function () {
  3. //获取文件
  4. var file = this.files[0];
  5. //读取文件
  6. if (window.FileReader) {
  7. var reader = new FileReader();
  8. reader.readAsDataURL(file);
  9. //监听文件读取结束后事件
  10. reader.onloadend = function (e) {
  11. //获取上传的文件名
  12. let fileName = file.name;
  13. //获取文件的后缀名
  14. let filextend = fileName.substring(fileName.lastIndexOf("."));
  15. let filetypes = [".rar", ".zip"];
  16. if (filetypes.indexOf(filextend) < 0) {
  17. alert("上传类型不支持,请重新选择")
  18. return
  19. }
  20. console.log(file);
  21. //限制文件上传的大小
  22. let filemaxsize = 1024*20;//20M
  23. var fileSize = file.size / 1024;
  24. if(fileSize>filemaxsize){
  25. alert("附件大小不能超过"+filemaxsize/1024+"M!!!");
  26. return
  27. }
  28. $("#uploadAppendix a").html(fileName)
  29. //调用上传附件的接口
  30. //upLoadAppendix(fileName)
  31. };
  32. }
  33. })

其他方式来限制文件类型,文件上传大小等可以参考

  1. <input type="file" name="contractFileName" style="width: 500px;" οnchange="fileChange(this);"/>
  2. <script type="text/javascript">
  3. var isIE = /msie/i.test(navigator.userAgent) && !window.opera;
  4. function fileChange(target,id) {
  5. var fileSize = 0;
  6. var filetypes =[".jpg",".png",".rar",".txt",".zip",".doc",".ppt",".xls",".pdf",".docx",".xlsx"];
  7. var filepath = target.value;
  8. var filemaxsize = 1024*2;//2M
  9. if(filepath){
  10. var isnext = false;
  11. var fileend = filepath.substring(filepath.lastIndexOf("."));
  12. if(filetypes && filetypes.length>0){
  13. for(var i =0; i<filetypes.length;i++){
  14. if(filetypes[i]==fileend){
  15. isnext = true;
  16. break;
  17. }
  18. }
  19. }
  20. if(!isnext){
  21. alert("不接受此文件类型!");
  22. target.value ="";
  23. return false;
  24. }
  25. }else{
  26. return false;
  27. }
  28. if (isIE && !target.files) {
  29. var filePath = target.value;
  30. var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
  31. if(!fileSystem.FileExists(filePath)){
  32. alert("附件不存在,请重新选择!");
  33. return false;
  34. }
  35. var file = fileSystem.GetFile (filePath);
  36. fileSize = file.Size;
  37. } else {
  38. fileSize = target.files[0].size;
  39. }
  40. var size = fileSize / 1024;
  41. if(size>filemaxsize){
  42. alert("附件大小不能大于"+filemaxsize/1024+"M!!!");
  43. target.value ="";
  44. return false;
  45. }
  46. if(size<=0){
  47. alert("附件大小不能为0M!!!");
  48. target.value ="";
  49. return false;
  50. }
  51. }
  52. </script>

欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

JS监听input、keydown有输入法时打字完成后触发事件

在给输入框绑定input或keydown事件时预期效果是有输入法时,输入中文后触发事件,不希望输一个字母就触发一次事件可以用到c...

点击input弹出table数据表格

先看下效果图 插件下载地址https://gitee.com/lolicode/layui_component_tableselect 因为是以layer基础开发所以要引用lay...

怎么去掉输入框inputtextarea获得焦点时的边框

直接使用属性outline: none即可.search-choise{ box-shadow:none; border:0none; outline:none; }

vue动态添加文件选择框vue动态添加input

code:&lt;!DOCTYPEhtml&gt; &lt;html&gt; &lt;head&gt; &lt;metaname=&quot;viewport&quot;content=&quot;width=devic...

设置uni-easyinput中textarea类型的高度

在组件内容去修改uni-easyinput__content-textarea样式中的高度即可 默认是80修改成你想要的即可 .uni-easyinput__conten...

input type file 文件选择框设置为多选获取选择的多图

html &lt;input ref=&quot;inputImgFile&quot; type=&quot;file&quot; multiple=&quot;true&quot; accept=&quot;image/*&q...

input type file 限制上传图片和视频限制上传的类型多文件上传等

input type file 限制上传图片和视频&lt;input type=&quot;file&quot; id=&quot;fileInput&quot; multiple accept=&quot;im...

Quartz.NET实例动态改变周期调度misfire、Cron

Quartz:Java编写的开源的任务调度作业框架 类似Timer之类定时执行的功能,但是更强大Quartz.NET:是把Quartz转成C# NuGet...

.NET Windows服务发布、安装、卸载、监听脚本服务调试

一、脚本 为方便不用每次都去写安装卸载的脚本1.安装脚本@echooff @echo开始安装【服务】 %SystemRoot%\Microsoft.NET\Fr...

nginx常用命令nginx启动命令nginx重启命令nginx关闭命令nginx测试配置文件是否正确nginx nginx.pid文件丢失报错

启动命令:start nginx 关闭命令:nginx -s stop nginx -s quit nginx -s stop与nginx -s quit区别 Quit is a graceful shu...

DevExpress.XtraSpreadsheet.SpreadsheetControl控件 加载excel模板

stringpath=&quot;文件路径&quot;; DevExpress.XtraSpreadsheet.SpreadsheetControlspreadsheetControl=newDevExpress.Xtr...

上传文件到服务器及 下载到 客户端

usingSystem; usingSystem.Collections.Generic; usingSystem.Text; usingSystem.Net; usingSystem.IO; namespaceCo...

使用OutLook发送邮件

publicstaticvoidOutlook(stringSubject,stringTextBody,stringFromAdd,stringFromPass,stringTo,stringCC,List&lt;string&...

类型“DbSet”在未引用的程序集中定义必须添加对程序集“EntityFramework Version=5.0.0.0 Culture=neutral PublicKeyToken=b7

在用mvc+ef的时候在DAL层引用上下文信息的时候会报出下面错误其实就是没得EntityFromwork,打开vs项目,点击工具,选择NuGe...