使用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 相关文章推荐
javascript nextSibling 与 getNextElement(node) 使用介绍
Oct 13 Javascript
jQuery中Dom的基本操作小结
Jan 23 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
May 03 Javascript
轻松实现js选项卡切换效果
Sep 24 Javascript
浅谈移动端之js touch事件 手势滑动事件
Nov 07 Javascript
jQuery中animate的几种用法与注意事项
Dec 12 Javascript
使用jquery datatable和bootsrap创建表格实例代码
Mar 17 Javascript
jQuery使用each遍历循环的方法
Sep 19 jQuery
Angular CLI 使用教程指南参考小结
Apr 10 Javascript
实例详解带参数的 npm script
May 28 Javascript
微信公众号平台接口开发 获取access_token过程解析
Aug 14 Javascript
原生Vue 实现右键菜单组件功能
Dec 16 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
nginx+php-fpm配置文件的组织结构介绍
2012/11/07 PHP
探讨:parse url解析URL,返回其组成部分
2013/06/14 PHP
浅谈json_encode用法
2015/03/05 PHP
解决laravel(5.5)访问public报错的问题
2019/10/12 PHP
JavaScript库 开发规则
2009/01/31 Javascript
用JS实现一个TreeMenu效果分享
2011/08/28 Javascript
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
json对象转字符串如何实现
2012/12/02 Javascript
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
jQuery实现可用于博客的动态滑动菜单
2015/03/09 Javascript
灵活使用数组制作图片切换js实现
2016/07/28 Javascript
javascript实现将数字转成千分位的方法小结【5种方式】
2016/12/11 Javascript
js实现数组去重方法及效率?Ρ? target=
2017/02/14 Javascript
创建简单的node服务器实例(分享)
2017/06/23 Javascript
详解vue项目的构建,打包,发布全过程
2017/11/23 Javascript
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
详解在vue-test-utils中mock全局对象
2018/11/07 Javascript
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
Node.js事件的正确使用方法
2019/04/05 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
python自动化测试之从命令行运行测试用例with verbosity
2014/09/28 Python
Python 2与Python 3版本和编码的对比
2017/02/14 Python
Python3实现发送QQ邮件功能(html)
2017/12/15 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
python实现两张图片的像素融合
2019/02/23 Python
python字典key不能是可以是啥类型
2020/08/04 Python
python各种excel写入方式的速度对比
2020/11/10 Python
联想墨西哥官方网站:Lenovo墨西哥
2016/08/17 全球购物
美国女士泳装店:Swimsuits For All
2017/03/02 全球购物
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
LINUX下线程,GDI类的解释
2016/12/14 面试题
父亲生日宴会答谢词
2014/01/10 职场文书
写给女朋友的检讨书
2015/05/06 职场文书
元旦主持词开场白
2015/05/29 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书