我们直接进入主题,使用VS2017开发工具首先要创建一个WebApi项目,创建完之后,在wwwroot文
我们直接进入主题,使用VS2017开发工具
首先要创建一个WebApi项目,创建完之后,在wwwroot文件下,创建一个文件夹 名字可以随意起 我这里呢就叫做Upload了
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的地址
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
VUE 上传图片 VUE iView 上传图片