使用VUE+iView+.Net Core上傳圖片


我們直接進入主題,使用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的地址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM