使用VUE+iView+.Net Core上传图片的方法示例


Posted in Javascript onJanuary 04, 2019

我们直接进入主题,使用VS2017开发工具

首先要创建一个WebApi项目,创建完之后,在wwwroot文件下,创建一个文件夹 名字可以随意起  我这里呢就叫做Upload了

使用VUE+iView+.Net Core上传图片的方法示例

ok ! 然后我们再创建一个控制器 IndexController 代码如下

要知道上传图片都是通过HTTP去请求,服务端从request中读取

public class PicData
    {
      public string Msg { get; set; }
    }

    [HttpPost]
    public async Task<bool> InsertPicture([FromServices]IHostingEnvironment environment)
    {
      var data = new PicData();
      string path = string.Empty;
      var files = Request.Form.Files;
      if (files == null || files.Count() <= 0)
      {
        data.Msg = "请选择上传的文件。";
        return false;
      }

      //格式限制
      var allowType = new string[] {"image/jpg", "image/png", "image/jpeg"};
      if (files.Any(c => allowType.Contains(c.ContentType)))
      {
        if (files.Sum(c => c.Length) <= 1024 * 1024 * 4)
        {
          foreach (var file in files)
          {
            string strpath = Path.Combine("Upload", DateTime.Now.ToString("MMddHHmmss") + file.FileName);
            path = Path.Combine(environment.WebRootPath, strpath);

            using (var stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite))
            {
              await file.CopyToAsync(stream);
            }
          }

          data.Msg = "上传成功";
          return true;
        }
        else
        {
          data.Msg = "图片过大";
          return false;
        }
      }
      else

      {
        data.Msg = "图片格式错误";
        return false;
      }
    }

注意一下这段代码

string strpath = Path.Combine("Upload", DateTime.Now.ToString("MMddHHmmss") + file.FileName);

在wwwroot下创建的文件夹,要将Upload替换成你的文件夹名称

然后这还没有完,还要做跨域,要在Startup.cs文件中去改

public void ConfigureServices(IServiceCollection services)
    {
      services.AddMvc();
      services.AddCors(options =>
      {
        options.AddPolicy("hehe", p => p.AllowAnyMethod()// 允许任何方法 GET,POST,PUT,DELETE, OPTIONS
            .AllowAnyHeader()    // 允许任何请求头
            .AllowAnyOrigin()    // 允许任何地址
        );
      });
    }

ConfigureServices方法,然后还有Configure方法

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
      app.UseStaticFiles(); app.UseCors("hehe");
      if (env.IsDevelopment())
      {
        app.UseDeveloperExceptionPage();
      }
      app.UseMvc();
    }

ok完成了,

然后我们就要去创建Vue项目了,

使用npm创建vue项目,vue init webpack file     我们跳过创建过程

使用npm 引用iview  然后在vue项目中的main.js中引用

import iView from 'iview';
import 'iview/dist/styles/iview.css';
import locale from 'iview/dist/locale/en-US';

Vue.use(iView, { locale });

ok,然后我们就在app.vue里面写代码

<template>
 <div id="app">
  
  <Upload action="http://localhost:53688/api/Index">
    <Button icon="ios-cloud-upload-outline">Upload files</Button>
  </Upload>

 </div>
</template>

action:就是api的地址

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

Javascript 相关文章推荐
提交表单时执行func方法实现代码
Mar 17 Javascript
js截取中英文字符串、标点符号无乱码示例解读
Apr 17 Javascript
jquery删除数组中重复元素
Dec 05 Javascript
修改ligerui 默认确认按钮的方法
Dec 27 Javascript
详解微信小程序——自定义圆形进度条
Dec 29 Javascript
5种JavaScript脚本加载的方式
Jan 16 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
Mar 30 Javascript
js实现本地图片文件拖拽效果
Jul 18 Javascript
JS中的函数与对象的创建方式
May 12 Javascript
vue+canvas实现移动端手写签名
May 21 Javascript
vue+element实现图片上传及裁剪功能
Jun 29 Javascript
React实现全选功能
Aug 25 Javascript
Node.js assert断言原理与用法分析
Jan 04 #Javascript
如何为vuex实现带参数的 getter和state.commit
Jan 04 #Javascript
原生javascript实现连连看游戏
Jan 03 #Javascript
JavaScript键盘事件常见用法实例分析
Jan 03 #Javascript
JavaScript常见鼠标事件与用法分析
Jan 03 #Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
Jan 03 #Javascript
JavaScript实现shuffle数组洗牌操作示例
Jan 03 #Javascript
You might like
mysql 字段类型说明
2007/04/27 PHP
二进制交叉权限微型php类分享
2014/02/07 PHP
ecshop 2.72如何修改后台访问地址
2015/03/03 PHP
PHP递归实现快速排序的方法示例
2017/12/18 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
jQuery 1.2.x 升? 1.3.x 注意事项
2009/05/06 Javascript
基于jquery的大众点评,分类导航实现代码
2011/08/23 Javascript
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
jquery 插件学习(六)
2012/08/06 Javascript
jQuery学习笔记 获取jQuery对象
2012/09/19 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
JavaScript实现表格排序方法
2013/06/14 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
2014/05/04 Javascript
Node.js 异步编程之 Callback介绍(一)
2015/03/30 Javascript
JS+CSS实现带小三角指引的滑动门效果
2015/09/22 Javascript
轻松掌握JavaScript代理模式
2016/08/26 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
详解如何在项目中使用jest测试react native组件
2018/02/09 Javascript
如何编写一个d.ts文件的步骤详解
2018/04/13 Javascript
微信小程序系列之自定义顶部导航功能
2019/05/21 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
vue实现页面切换滑动效果
2020/06/29 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
2020/07/21 Javascript
[02:11]DOTA2上海特级锦标赛主赛事第二日RECAP
2016/03/04 DOTA
[54:06]OG vs TNC 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python探索之爬取电商售卖信息代码示例
2017/10/27 Python
Python用于学习重要算法的模块pygorithm实例浅析
2018/08/16 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
2019/04/03 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
应用化学专业职业生涯规划书
2014/01/22 职场文书
2015年大学班级工作总结
2015/04/28 职场文书
2015年人民调解工作总结
2015/05/18 职场文书
七年级作文之我的梦想
2019/10/16 职场文书
Springboot/Springcloud项目集成redis进行存取的过程解析
2021/12/04 Redis
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技