使用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 相关文章推荐
Dom在ajax技术中的作用说明
Oct 25 Javascript
无阻塞加载脚本分析[全]
Jan 20 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
May 17 Javascript
JS this作用域以及GET传输值过长的问题解决方法
Aug 06 Javascript
js采用map取到id集合组并且实现点击一行选中一行
Dec 16 Javascript
node.js中的fs.existsSync方法使用说明
Dec 17 Javascript
jquery实现不包含当前项的选择器实例
Jun 25 Javascript
浅谈JS中json数据的处理
Jun 30 Javascript
JS作用域闭包、预解释和this关键字综合实例解析
Dec 16 Javascript
React学习之事件绑定的几种方法对比
Sep 24 Javascript
基于vue2.x的电商图片放大镜插件的使用
Jan 22 Javascript
使用vue引入maptalks地图及聚合效果的实现
Aug 10 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
从零开始的异世界生活:第二季延期后,B站上架了第二部剧场版
2020/05/06 日漫
10个php函数实用却不常见
2015/10/13 PHP
PHP基于新浪IP库获取IP详细地址的方法
2017/05/04 PHP
使用laravel根据用户类型来显示或隐藏字段
2019/10/17 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
2020/08/17 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
浅析JS刷新框架中的其他页面 &amp;&amp; JS刷新窗口方法汇总
2013/07/08 Javascript
javascript获取flash版本号的方法
2014/11/20 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
jQuery实现的五子棋游戏实例
2015/06/13 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
图解Javascript——作用域、作用域链、闭包
2017/03/21 Javascript
Vue2.0使用过程常见的一些问题总结学习
2017/04/10 Javascript
学习Vue组件实例
2018/04/28 Javascript
Angular脚手架开发的实现步骤
2019/04/09 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
Python之list对应元素求和的方法
2018/06/28 Python
浅谈pycharm下找不到sqlalchemy的问题
2018/12/03 Python
详解Python字符串切片
2019/05/20 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
2020/06/16 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
皇家阿尔伯特英国官方商店:Royal Albert骨瓷
2019/03/25 全球购物
瑞士图书网站:Weltbild.ch
2019/09/17 全球购物
18岁生日感言
2014/01/12 职场文书
银行见习期自我鉴定
2014/01/29 职场文书
电气个人求职信范文
2014/02/04 职场文书
乡镇党委书记个人整改措施
2014/09/15 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
应聘教师自荐信
2015/03/26 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
2015个人年度工作总结范文
2015/05/28 职场文书