使用VUE+iView+.Net Core上傳圖片的方法示例
我們直接進(jìn)入主題,使用VS2017開發(fā)工具
首先要?jiǎng)?chuàng)建一個(gè)WebApi項(xiàng)目,創(chuàng)建完之后,在wwwroot文件下,創(chuàng)建一個(gè)文件夾 名字可以隨意起 我這里呢就叫做Upload了
ok ! 然后我們?cè)賱?chuàng)建一個(gè)控制器 IndexController 代碼如下
要知道上傳圖片都是通過HTTP去請(qǐng)求,服務(wù)端從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 = "請(qǐng)選擇上傳的文件。"; 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 = "圖片格式錯(cuò)誤"; return false; } }
注意一下這段代碼
string strpath = Path.Combine("Upload", DateTime.Now.ToString("MMddHHmmss") + file.FileName);
在wwwroot下創(chuàng)建的文件夾,要將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() // 允許任何請(qǐng)求頭 .AllowAnyOrigin() // 允許任何地址 ); }); }
ConfigureServices方法,然后還有Configure方法
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseStaticFiles(); app.UseCors("hehe"); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseMvc(); }
ok完成了,
然后我們就要去創(chuàng)建Vue項(xiàng)目了,
使用npm創(chuàng)建vue項(xiàng)目,vue init webpack file 我們跳過創(chuàng)建過程
使用npm 引用iview 然后在vue項(xiàng)目中的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的地址
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue中三種插槽(默認(rèn)插槽/具名插槽/作用域插槽)的區(qū)別詳解
默認(rèn)插槽,具名插槽,作用域插槽是vue中常用的三個(gè)插槽,這篇文章主要為大家介紹了這三種插槽的使用與區(qū)別,感興趣的小伙伴可以了解一下2023-08-08從零開始在NPM上發(fā)布一個(gè)Vue組件的方法步驟
這篇文章主要介紹了從零開始在NPM上發(fā)布一個(gè)Vue組件的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-12-12nuxt.js服務(wù)端渲染中axios和proxy代理的配置操作
這篇文章主要介紹了nuxt.js服務(wù)端渲染中axios和proxy代理的配置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11Vue突然報(bào)錯(cuò)doesn‘t?work?properly?without?JavaScript?enabled
最近在做項(xiàng)目的時(shí)候遇到了些問題,所以這篇文章主要給大家介紹了關(guān)于Vue突然報(bào)錯(cuò)doesn‘t?work?properly?without?JavaScript?enabled的解決方法,需要的朋友可以參考下2023-01-01vue2使用ts?vue-class-component的過程
vue-property-decorator?是一個(gè)?Vue.js?的裝飾器庫,它提供了一些裝飾器來讓你在?Vue?組件中定義屬性、計(jì)算屬性、方法、事件等,本文給大家介紹vue2使用ts?vue-class-component的相關(guān)知識(shí),感興趣的朋友一起看看吧2023-11-11