您好,登錄后才能下訂單哦!
這篇“VUE如何實現上傳圖片功能”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“VUE如何實現上傳圖片功能”文章吧。
首先要創建一個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>
Vue具體輕量級框架、簡單易學、雙向數據綁定、組件化、數據和結構的分離、虛擬DOM、運行速度快等優勢,Vue中頁面使用的是局部刷新,不用每次跳轉頁面都要請求所有數據和dom,可以大大提升訪問速度和用戶體驗。
以上就是關于“VUE如何實現上傳圖片功能”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。